using UnityEngine; using UnityEngine.EventSystems; using System.Collections; public class SlotSiluet : MonoBehaviour, IDropHandler { [Header("Identitas (Harus sama dengan DragBenda)")] public string idSlot; public void OnDrop(PointerEventData eventData) { // Cek apakah ada benda yang dilepas di atas bayangan ini if (eventData.pointerDrag != null) { DragBenda benda = eventData.pointerDrag.GetComponent(); // Cek apakah ID-nya cocok if (benda != null && benda.idHewan == idSlot) { Debug.Log("MANTAP BOS! " + idSlot + " Cocok!"); RectTransform bendaRect = benda.GetComponent(); RectTransform slotRect = GetComponent(); // 1. KUNCI POSISI & PARENT benda.transform.SetParent(transform); // 2. PAS-KAN DI TENGAH BAYANGAN bendaRect.position = slotRect.position; // 3. SESUAIKAN UKURAN & SKALA bendaRect.sizeDelta = slotRect.sizeDelta; bendaRect.localScale = slotRect.localScale; // 4. JALANKAN ANIMASI MEMBAL (BIAR KEREN) StartCoroutine(AnimasiBendaMasuk(bendaRect)); // 5. LAPOR KE SCRIPT DRAG BENDA (UNTUK SUARA & SKOR) benda.BerhasilMasukSiluet(); } } } // Coroutine biar hewannya auto membesar pas masuk IEnumerator AnimasiBendaMasuk(RectTransform target) { Vector3 skalaAwal = target.localScale; Vector3 skalaGede = skalaAwal * 1.3f; // Membesar ke 130% float t = 0; // Fase 1: Membesar while (t < 1f) { t += Time.deltaTime * 10f; target.localScale = Vector3.Lerp(skalaAwal, skalaGede, t); yield return null; } t = 0; // Fase 2: Kembali normal while (t < 1f) { t += Time.deltaTime * 8f; target.localScale = Vector3.Lerp(skalaGede, skalaAwal, t); yield return null; } target.localScale = skalaAwal; } }