拖动接口
public class TestDrag : MonoBehaviour,IInitializePotentialDragHandler,
IBeginDragHandler,IDragHandler,IDropHandler,IEndDragHandler//开始之前(鼠标点击时)
//开始拖动 拖动中 拖动放下 结束拖动(执行顺序也是如此)
其他四个接口都必须现在实现了拖动中接口(IDragHandler)前提下才能起作用
例子:鼠标拖动物体移动(类似于背包系统)
public class TestDrag : MonoBehaviour,IDragHandler
{
public void OnDrag(PointerEventData eventData)
{//法一:
//RectTransform rect = transform.GetComponent<RectTransform>();
//Vector3 newpos = Vector3.back;
//RectTransformUtility.ScreenPointToWorldPointInRectangle(rect, eventData.position,
//eventData.enterEventCamera, out newpos);
//rect.position = newpos;
//法二:
var rect = transform.GetComponent<RectTransform>();
rect.anchoredPosition +=eventData.delta;//鼠标2次移动的距离差
//用锚点的位置改变物体位置,更好
}
}
鼠标接口:
public class TestDrag : MonoBehaviour,IPointerEnterHandler,IPointerExitHandler,
IPointerDownHandler,IPointerUpHandler,IPointerClickHandler
//鼠标进入 退出 按下 点击 抬起(执行顺序也如此)
Up与Click都是鼠标按下再抬起才执行,但Click必须保证抬起鼠标时鼠标位置也在物体上
选中接口:
public class TestDrag : MonoBehaviour,ISelectHandler,IUpdateSelectedHandler,
IDeselectHandler//第一个只执行一次,第二个选中时一直执行(类似于Update)
必须在物体身上挂载Selectable组件
按键接口:
public class TestDrag : MonoBehaviour,IScrollHandler,ISubmitHandler,ICancelHandler,
IMoveHandler//滚轮 提交按钮 取消按钮 移动按钮
必须挂载Selectable组件,且物体处于选中转态,滚轮接口还要求鼠标停留在物体上
对应的按键在EventSystem面板查看(也就是自定义的虚拟按键)