// ***********************************************************************
// 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();
}
}
}