4.5.2 UI事件
UGUI的事件非常全面,前面提到的Button、Toggle和Slider组件都是通过接入特定的事件进行扩展的。只要我们掌握底层UI事件,就可以扩展出各种事件的结果了。首先来看看UI事件有哪些。
IPointerEnterHandler- OnPointerEnter:进入该区域时调用。
IPointerExitHandler – OnPointerExit:离开该区域时调用。
IPointerDownHandler- OnPointerDown:按下时调用。
IPointerUpHandler- OnPointerUp:抬起时调用。
IPointerClickHandler- OnPointerClick:按下并抬起时调用,比如按钮的点击。
InitializePotentialDragHandler- OnInitializePotentialDrag:拖动初始化。
IBeginDragHandler – OnBeginDrag:拖动开始时调用,并且可以取到拖动的方向,而OnInitializePotentialDrag只表示拖动初始化,无法取到方向。
IDragHandler – OnDrag:持续拖动时调用。
IEndDragHandler- OnEndDrag:拖动结束时调用。
IDropHandler- OnDrop:落下时调用。
IScrollHandler- OnScroll:鼠标持续滚轮时调用。
IUpdateSelectedHandler – OnUpdateSelected:选择时续调用,只针对Selectable起作用。
ISelectHandler- OnSelect:选择后调用,只针对Selectable起作用。
IDeselectHandler-OnDeselect:取消选择,由于只能选择一个Selectable,当选择新的之后,之前选择的就会回调取消选择事件。
IMoveHandler – OnMove:选择后,可监听上下左右和WSAD等方向键。如果访问eventData.moveDir,可以取到具体的移动方向。
ISubmitHandler- OnSubmit:按钮按下事件。
ICancelHandler- OnCancel:按钮取消事件,按下时按Esc键可取消。
我们以监听Image组件的按下和抬起事件为例,如代码清单4-12所示,需要实现IpointerDown-Handler和 IPointerUpHandler这两个接口。