Unity-UGUI事件系统(Drag)

//四个event

IInitializePotentialDragHandler:初始化,鼠标最对应地方摁下出发(鼠标Down)每次点击触发一次

IBeginDragHandler:鼠标移动出发,第一下移动触发一次

IDragHandler:一直触发

IEndDragHandler:结束(鼠标Up)鼠标点击松开触发一次

//实现拖拽

//先在需要拖拽的加上CanvasGroup组件

using UnityEngine.EventSystems;//引入命名空间

public class Bag : MonoBehaviour, IInitializePotentialDragHandler, IBeginDragHandler, IDragHandler, IEndDragHandler
{

private CanvasGroup cg;//获取组件

void Strat()
{
cg=GetComponent<CanvasGroup>();
}

public void OnInitializePotentialDrag(PointerEventData eventData)
    {
        print(“int…”);
    }
    public void OnBeginDrag(PointerEventData eventData)//拖拽开始
    {
        print(“begin…”);
        cg.blocksRaycasts=false;
    }

    public void OnDrag(PointerEventData eventData)//拖拽过程中
    {
        print(“drag…”);
        transform.position=eventData.position;
        GameObject go = eventData.pointerEnter; //碰撞的对象
        //把拖拽的物体放到格子下面
        //transform.parent = go.transform;
        if (go.CompareTag(“Ceils”))
        {
            transform.SetParent(go.transform, false);

        }

    }

    public void OnEndDrag(PointerEventData eventData)//拖拽结束
    {
        print(“end…”);
        cg.blocksRaycasts = true;
    }

}