IBeginDragHandler,IEndDragHandler,IDragHandler,IDropHandler
首先要实现这个四个接口。
其中OnDrag接口是用来处理图标跟随光标(手指在屏幕的位置)的
UGUI实现拖拽比NGUI简单太多,再也不用各种InverseTransformPoint了。
public void OnDrag(PointerEventData eventData)
{
if (draging_image != null)
{
Vector2 result;
RectTransformUtility.ScreenPointToLocalPointInRectangle(
draging_image.transform.parent as RectTransform,
eventData.position,
eventData.pressEventCamera,
out result);
draging_image.image.rectTransform.anchoredPosition = result;
}
}
这里要使用一个函数
RectTransformUtility.ScreenPointToLocalPointInRectangle
第一个参数,注意,一定要填写当前Item的父节点的RectTransfom,不然,这个图标就会一直闪啊闪
第二个参数,没啥可讲的。
第三个参数,注意不要到处去找别的Camera了,参数里面已经为你提供好了,用pressEventCamera
最后直接把结果赋值给指定跟随的图片的anchoredPosition即可,也不用在转换来转换去的了。