Ekosistem_Game/Assets/Script/SensorKeranjang.cs

50 lines
1.8 KiB
C#

using UnityEngine;
using UnityEngine.EventSystems;
public class KeranjangPintar : MonoBehaviour, IDropHandler
{
[Header("Keranjang ini untuk ekosistem apa?")]
public JenisEkosistem tipeKeranjang;
[Header("WAJIB ISI: Tarik Gambar Keranjang ke kotak ini!")]
public Transform gambarKeranjangVisual;
public void OnDrop(PointerEventData eventData)
{
if (eventData.pointerDrag != null)
{
DragHewan hewan = eventData.pointerDrag.GetComponent<DragHewan>();
// CEK: Apakah hewannya benar masuk ke ekosistem yang tepat?
if (hewan != null && hewan.asalEkosistem == this.tipeKeranjang)
{
// 1. JURUS PRESISI: Paksa posisi hewan pindah ke posisi tengah keranjang!
if (gambarKeranjangVisual != null)
{
// Pindahkan parent
hewan.transform.SetParent(gambarKeranjangVisual.parent, true);
hewan.transform.SetSiblingIndex(gambarKeranjangVisual.GetSiblingIndex());
// PAKSA POSISI KE TENGAH KERANJANG
hewan.transform.position = gambarKeranjangVisual.position;
}
// 2. JALANKAN JURUS BERHASIL
hewan.BerhasilMasukEkosistem();
// 3. Matikan biar gak bisa ditarik lagi
CanvasGroup cg = hewan.GetComponent<CanvasGroup>();
if (cg != null) {
cg.alpha = 1f;
cg.blocksRaycasts = false;
}
}
else if (hewan != null)
{
// Kalau salah, panggil suara salah di GameManager
GameManager gm = FindObjectOfType<GameManager>();
if (gm != null) gm.JawabanSalah();
}
}
}
}