//四个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;
}
}