做了一段时间的VR产品,使用UGUI主要是是3DUI,今天需要实现一个鼠标拖动2DUI的功能,学习了一下在此坐下笔记。
使用Unity版本:5.6.4
以image为例进行记录,首先创建一个image , 勾选Raycast Target属性。
然后实现脚本:
public class DragEvent : Selectable, IBeginDragHandler, IDragHandler, IEndDragHandler
{
public void OnBeginDrag(PointerEventData eventData)
{
// Debug.LogError("OnBeginDrag");
//使拖拽的物体显示在同级的最上层
transform.SetAsLastSibling();
}
public void OnDrag(PointerEventData eventData)
{
Debug.LogError("OnDrag");
if(eventData != null)
{
transform.position = eventData.position;
}
}
public void OnEndDrag(PointerEventData eventData)
{
Debug.LogError("OnDrag");
}
}
次脚本继承IBeginDragHandler, IDragHandler, IEndDragHandler,用于拖拽就足够了。
此处继承Selectable另有他用暂不描述。
此时给我们的image对象挂载DragEvent脚本,
然后我们可以运行测试一下,拖拽基本实现。