58 lines
1.5 KiB
C#
58 lines
1.5 KiB
C#
![]() |
// ***********************************************************************
|
|||
|
// Assembly : Unity
|
|||
|
// Author : KimCh
|
|||
|
// Created :
|
|||
|
//
|
|||
|
// Last Modified By : KimCh
|
|||
|
// Last Modified On :
|
|||
|
// ***********************************************************************
|
|||
|
// <copyright file= "KDropZone" company=""></copyright>
|
|||
|
// <summary></summary>
|
|||
|
// ***********************************************************************
|
|||
|
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<KDraggable>();
|
|||
|
if (d != null)
|
|||
|
{
|
|||
|
d.placeHolderParent = this.transform;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
public void OnPointerExit(PointerEventData eventData)
|
|||
|
{
|
|||
|
if (!eventData.pointerDrag)
|
|||
|
return;
|
|||
|
|
|||
|
var d = eventData.pointerDrag.GetComponent<KDraggable>();
|
|||
|
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<KDraggable>();
|
|||
|
if (d != null)
|
|||
|
{
|
|||
|
d.parentToReturnTo = this.transform;
|
|||
|
onDrop.Invoke();
|
|||
|
}
|
|||
|
}
|
|||
|
}
|