这里主要介绍了Unity 按钮事件封装操作(EventTriggerListener),具有很好的参考价值,废话不多说,直接上代码:
. i! y8 V5 X, g- r: i% h
- using UnityEngine;
- using UnityEngine.EventSystems;
- namespace Mx.UI
- {
- public class EventTriggerListener :UnityEngine.EventSystems.EventTrigger
- {
- public delegate void VoidDelegate(GameObject go);
- public VoidDelegate onClick;
- public VoidDelegate onDown;
- public VoidDelegate onEnter;
- public VoidDelegate onExit;
- public VoidDelegate onUp;
- public VoidDelegate onSelect;
- public VoidDelegate onUpdateSelect;
- /// <summary>
- /// 得到“监听器”组件
- /// </summary>
- /// <param name="go">监听的游戏对象</param>
- /// <returns>
- /// 监听器
- /// </returns>
- public static EventTriggerListener Get(GameObject go)
- {
- EventTriggerListener lister = go.GetComponent<EventTriggerListener>();
- if (lister==null)
- {
- lister = go.AddComponent<EventTriggerListener>();
- }
- return lister;
- }
-
- public override void OnPointerClick(PointerEventData eventData)
- {
- if (onClick != null)
- {
- onClick(gameObject);
- }
- }
-
- public override void OnPointerDown(PointerEventData eventData)
- {
- if (onDown != null)
- {
- onDown(gameObject);
- }
- }
-
- public override void OnPointerEnter(PointerEventData eventData)
- {
- if (onEnter != null)
- {
- onEnter(gameObject);
- }
- }
-
- public override void OnPointerExit(PointerEventData eventData)
- {
- if (onExit != null)
- {
- onExit(gameObject);
- }
- }
-
- public override void OnPointerUp(PointerEventData eventData)
- {
- if (onUp != null)
- {
- onUp(gameObject);
- }
- }
-
- public override void OnSelect(BaseEventData eventBaseData)
- {
- if (onSelect != null)
- {
- onSelect(gameObject);
- }
- }
-
- public override void OnUpdateSelected(BaseEventData eventBaseData)
- {
- if (onUpdateSelect != null)
- {
- onUpdateSelect(gameObject);
- }
- }
- }//Class_end
- }
通常我们在Unity给按钮或者图片添加EventeTrigger事件都需要手动添加组件,或者通过代码继承系统提供接口实现功能。这样使用起来比较麻烦,所以参考网上资料总结写了一个自定义的EventTriggerListener类,专门用于添加事件。 ; y8 Q0 G7 C6 i h8 i0 S
EventTriggerListener类,不需要挂载到物体上,继承EventTrigger,作为Common类直接使用: & ^/ r2 Q0 x' Z
0 y$ \" {% \' V0 g" z
|