1、拖拽
三个接口:(拖拽前,拖拽中,拖拽结束)
IBeginDragHandler, IDragHandler, IEndDragHandler
引用命名空间:using UnityEngine.EventSystems;
(下同)
//防止射线穿透
CanvasGroup cg;
void Start()
{
cg = transform.GetComponent<CanvasGroup>();
}
//拖拽前
public void OnBeginDrag(PointerEventData eventData)
{
//防止穿透(防止拖拽的物体穿透在里面而被遮住)
cg.blocksRaycasts = false;
}
//拖拽时
public void OnDrag(PointerEventData eventData)
{
//拖拽物体跟随鼠标移动而移动
transform.position = Input.mousePosition;
}
//拖拽结束
public void OnEndDrag(PointerEventData eventData)
{
//触碰对象
GameObject go = eventData.pointerEnter;
//GameObject go = eventData.pointerCurrentRaycast.gameObject;//触碰对象
//如果放进空的背包格子里
//就设置子父级
transform.SetParent(go.transform);
//然后居中位置
transform.localPosition = Vector3.zero;
}
2、鼠标移动、离开
接口:IPointerEnterHandler、IPointerExitHandler
public void OnPointerEnter(PointerEventData eventData){
}
public void OnPointerExit(PointerEventData eventData){
}