UGUI事件系统——事件接口

所有的事件接口均继承自 IEventSystemHandler

 

IPointerEnterHandler  指针进入事件

IPointerExitHandler    指针退出事件

——利用指针进入、退出事件,可以完成ToolTip功能

IPointerDownHandler  指针按下事件:在可视元素矩形区域内按下时响应

IPointerUpHandler      指针抬起事件:在可视元素矩形区域内按下后,在任意地方抬起时响应

IPointerClickHandler   指针点击事件:在可视元素矩形区域内按下后,且在同一可视元素矩形区域内抬起时响应

——有按下,必定有抬起;有按下,未必有点击

 

IInitializePotentialDragHandler  初始化潜在的拖动事件:与IPointerDownHandler触发条件基本相同

IBeginDragHandler  拖动开始事件

IDragHandler       拖动中事件

IEndDragHandler     拖动结束事件

IDropHandler       接收拖动事件

IScrollHandler      滚动事件

 

ISelectHandler    选择事件:选择(点击)时调用EventSystem.current.SetSelectedGameObject(gameObject)选中,随后触发OnSelect(...)方法

IDeselectHandler     取消选择事件:选中另一gameObject后,原来选中的自动取消

IUpdateSelectedHandler  选中物体每帧触发事件

 

IMoveHandler      移动事件(上下左右):与InputManager里的Horizontal和Vertical按键相对应。=> Input.GetAxisRaw()

ISubmitHandler      提交事件:按下InputManager里的submit对应的按键(一般是Enter)。=> Input.GetButtonDown()

ICancelHandler     取消事件:按下InputManager里的cancel对应的按键(Esc)。=> Input.GetButtonDown()

——移动、提交、取消操作,必须先选中(OnSelect)才能触发

 

所有被继承的事件接口,需要实现其方法,参数一般是EventData(BaseEventData/PointerEventData),利用这些参数可以完成相应操作。



 
 
  1. using UnityEngine;
  2. using UnityEngine.EventSystems;
  3.  
  4. public class EventTest : MonoBehaviour,
  5. IPointerClickHandler,
  6. IPointerEnterHandler,
  7. IPointerExitHandler,
  8. IPointerDownHandler,
  9. IPointerUpHandler,
  10. IBeginDragHandler,
  11. IDragHandler,
  12. IInitializePotentialDragHandler,
  13. IEndDragHandler,
  14. IDropHandler,
  15. IUpdateSelectedHandler,
  16. ISelectHandler,
  17. IDeselectHandler,
  18. IScrollHandler,
  19. IMoveHandler,
  20. ISubmitHandler,
  21. ICancelHandler
  22. {
  23. #region 鼠标指针类
  24. //鼠标进入时响应
  25. public void OnPointerEnter(PointerEventData eventData)
  26. {
  27. Debug.Log("OnPointerEnter");
  28. }
  29.  
  30. //鼠标离开时响应
  31. public void OnPointerExit(PointerEventData eventData)
  32. {
  33. Debug.Log("OnPointerExit");
  34. }
  35.  
  36. //鼠标按下时响应
  37. public void OnPointerDown(PointerEventData eventData)
  38. {
  39. Debug.Log("OnPointerDown");
  40. }
  41.  
  42. //鼠标释放时响应
  43. public void OnPointerUp(PointerEventData eventData)
  44. {
  45. Debug.Log("OnPointerUp");
  46. }
  47.  
  48. //鼠标点击时响应
  49. public void OnPointerClick(PointerEventData eventData)
  50. {
  51. Debug.Log("OnPointerClick");
  52. }
  53. #endregion
  54.  
  55.  
  56. #region 拖拽类
  57. //初始化拖拽
  58. public void OnInitializePotentialDrag(PointerEventData eventData)
  59. {
  60. Debug.Log("OnInitializePotentialDrag");
  61. }
  62.  
  63. //开始拖拽
  64. public void OnBeginDrag(PointerEventData eventData)
  65. {
  66. Debug.Log("OnBeginDrag");
  67. }
  68.  
  69. //拖拽中
  70. public void OnDrag(PointerEventData eventData)
  71. {
  72. Debug.Log("OnDrag");
  73. }
  74.  
  75. //拖拽结束
  76. public void OnEndDrag(PointerEventData eventData)
  77. {
  78. Debug.Log("OnEndDrag");
  79. }
  80.  
  81. //拖拽释放
  82. public void OnDrop(PointerEventData eventData)
  83. {
  84. Debug.Log("OnDrop");
  85. }
  86. #endregion
  87.  
  88.  
  89. #region 点选类
  90. //当物体被选中时每帧触发
  91. public void OnUpdateSelected(BaseEventData eventData)
  92. {
  93. Debug.Log("OnUpdateSelected");
  94. }
  95.  
  96. //选中物体
  97. public void OnSelect(BaseEventData eventData)
  98. {
  99. Debug.Log("OnSelect");
  100. }
  101.  
  102. //未选中物体
  103. public void OnDeselect(BaseEventData eventData)
  104. {
  105. Debug.Log("OnDeselect");
  106. }
  107. #endregion
  108.  
  109. #region 输入类
  110. //鼠标中轮滚动
  111. public void OnScroll(PointerEventData eventData)
  112. {
  113. Debug.Log("OnScroll");
  114. }
  115.  
  116. //移动物体
  117. public void OnMove(AxisEventData eventData)
  118. {
  119. Debug.Log("OnMove");
  120. }
  121.  
  122. //提交
  123. public void OnSubmit(BaseEventData eventData)
  124. {
  125. Debug.Log("OnSubmit");
  126. }
  127.  
  128. //取消
  129. public void OnCancel(BaseEventData eventData)
  130. {
  131. Debug.Log("OnCancel");
  132. }
  133. #endregion
  134. }

猜你喜欢

转载自blog.csdn.net/qq_39816832/article/details/80432318