UGUI事件系统――事件接口

匿名 (未验证) 提交于 2019-12-03 00:19:01

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

IPointerEnterHandler  指针进入事件

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

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

任意地方抬起时响应

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

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

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

IBeginDragHandler  拖动开始事件

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

IUpdateSelectedHandler  选中物体每帧触发事件


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

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



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

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!