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(); // 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(); if (cg != null) { cg.alpha = 1f; cg.blocksRaycasts = false; } } else if (hewan != null) { // Kalau salah, panggil suara salah di GameManager GameManager gm = FindObjectOfType(); if (gm != null) gm.JawabanSalah(); } } } }