Ekosistem_Game/Assets/Script/PotonganPuzzleUI.cs

39 lines
1.4 KiB
C#

using UnityEngine;
using UnityEngine.EventSystems;
public class PotonganPuzzleUI : MonoBehaviour, IBeginDragHandler, IDragHandler, IEndDragHandler
{
public string idPotongan; // Isi di Inspector: P1, P2, dst
private RectTransform rectTransform;
private CanvasGroup canvasGroup;
private Vector3 posisiAwal;
private Canvas canvas;
void Awake() {
rectTransform = GetComponent<RectTransform>();
canvasGroup = GetComponent<CanvasGroup>();
canvas = GetComponentInParent<Canvas>();
// Simpan posisi awal di area acak biar bisa balik kalau salah
posisiAwal = rectTransform.anchoredPosition;
}
public void OnBeginDrag(PointerEventData eventData) {
canvasGroup.alpha = 0.7f; // Efek agak transparan pas ditarik
canvasGroup.blocksRaycasts = false; // Tembus biar bisa deteksi Wadah di bawahnya
}
public void OnDrag(PointerEventData eventData) {
// Gerakan kepingan ngikutin kursor
rectTransform.anchoredPosition += eventData.delta / canvas.scaleFactor;
}
public void OnEndDrag(PointerEventData eventData) {
canvasGroup.alpha = 1f;
canvasGroup.blocksRaycasts = true;
// Kalau dilepas tapi tidak nempel (parent-nya masih TempatAcak), balik ke posisi semula
if (transform.parent.name == "TempatAcak") {
rectTransform.anchoredPosition = posisiAwal;
}
}
}