// *********************************************************************** // Assembly : Unity // Author : KimCh // Created : // // Last Modified By : KimCh // Last Modified On : // *********************************************************************** // // // *********************************************************************** using UnityEngine; using UnityEngine.Events; using UnityEngine.EventSystems; public class KDropZone : MonoBehaviour, IDropHandler, IPointerEnterHandler, IPointerExitHandler { public readonly UnityEvent onDrop = new UnityEvent(); public void OnPointerEnter(PointerEventData eventData) { if (!eventData.pointerDrag) return; var d = eventData.pointerDrag.GetComponent(); if (d != null) { d.placeHolderParent = this.transform; } } public void OnPointerExit(PointerEventData eventData) { if (!eventData.pointerDrag) return; var d = eventData.pointerDrag.GetComponent(); if (d != null && d.placeHolderParent == this.transform) { d.placeHolderParent = d.parentToReturnTo; } } public void OnDrop(PointerEventData eventData) { //Debug.Log(eventData.pointerDrag.name + " dropped on " + gameObject.name); if (!eventData.pointerDrag) return; var d = eventData.pointerDrag.GetComponent(); if (d != null) { d.parentToReturnTo = this.transform; onDrop.Invoke(); } } }