/// <summary> /// 增加EventTrigger事件监听办法 /// </summary> /// <param name="trans"></param> /// <param name="type"></param> /// <param name="action"></param> public static void AddEventTriggerHandler(this Transform trans, EventTriggerType type,UnityAction<BaseEventData> action) { EventTrigger eventTrigger = null; if (!trans.TryGetComponent<EventTrigger>(out eventTrigger)) { eventTrigger = trans.gameObject.AddComponent<EventTrigger>(); } if (eventTrigger.triggers == null) { eventTrigger.triggers = new List<EventTrigger.Entry>(); } var entry = eventTrigger.triggers.FirstOrDefault(p => p.eventID == type); if (entry == null) { entry = new EventTrigger.Entry { eventID = type, }; entry.callback.AddListener(action); eventTrigger.triggers.Add(entry); } else { entry.callback.RemoveAllListeners(); entry.callback.AddListener(action); } } /// <summary> /// 增加带自定义参数的EventTrigger事件监听办法 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="trans"></param> /// <param name="type"></param> /// <param name="action"></param> /// <param name="t"></param> public static void AddEventTriggerHandler<T>(this Transform trans, EventTriggerType type, UnityAction<BaseEventData, T> action, T t) { trans.AddEventTriggerHandler(type,p => { action(p,t); }); }