UGUI

    xiaoxiao2021-04-12  37

    using UnityEngine; using UnityEngine.EventSystems; public class UIEventListener : 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;     static public UIEventListener Get(GameObject go)     {         UIEventListener listener = go.GetComponent<UIEventListener>();         if (listener == null) listener = go.AddComponent<UIEventListener>();         return listener;     }     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 eventData)     {         if (onSelect != null) onSelect(gameObject);     }     public override void OnUpdateSelected(BaseEventData eventData)     {         if (onUpdateSelect != null) onUpdateSelect(gameObject);     } }

    //测试脚本

    using UnityEngine; public class ClickTest : MonoBehaviour {     void Start()     {         UIEventListener.Get(this.gameObject).onClick = OnClick;     }     void OnClick(GameObject go)     {         Debug.LogError("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");     } }

    转载请注明原文地址: https://ju.6miu.com/read-668280.html

    最新回复(0)