33 lines
1.3 KiB
C#
33 lines
1.3 KiB
C#
using UnityEngine;
|
|
using UnityEngine.EventSystems;
|
|
|
|
public class WadahPuzzleUI : MonoBehaviour, IDropHandler
|
|
{
|
|
public string idWadah; // Isi di Inspector: P1, P2, dst (Samakan dengan Kepingan)
|
|
|
|
public void OnDrop(PointerEventData eventData) {
|
|
if (eventData.pointerDrag != null) {
|
|
PotonganPuzzleUI kepinganScript = eventData.pointerDrag.GetComponent<PotonganPuzzleUI>();
|
|
|
|
// CEK JODOH: Apakah ID Kepingan == ID Wadah?
|
|
if (kepinganScript != null && kepinganScript.idPotongan == idWadah) {
|
|
|
|
RectTransform kepinganRect = eventData.pointerDrag.GetComponent<RectTransform>();
|
|
|
|
// 1. Tempel posisi tepat ke tengah wadah ini
|
|
kepinganRect.position = GetComponent<RectTransform>().position;
|
|
|
|
// 2. SIHIR MEKAR: Balikin skala ke 1.0 biar pas menutup wadah putih
|
|
kepinganRect.localScale = Vector3.one;
|
|
|
|
// 3. Masukkan jadi anak Wadah di Hierarchy biar rapi
|
|
kepinganScript.transform.SetParent(transform);
|
|
|
|
// 4. KUNCI: Matikan deteksi raycast biar kepingan nggak bisa ditarik lagi
|
|
kepinganScript.GetComponent<CanvasGroup>().blocksRaycasts = false;
|
|
|
|
Debug.Log("Pas Bos! Puzzle Terpasang.");
|
|
}
|
|
}
|
|
}
|
|
} |