代码添加UI的EventTrigger点击事件

第一种情况

 1 /// <summary>
 2 /// 点击
 3 /// </summary>
 4 /// <param name="action"></param>
 5 /// <param name="MyObject"></param>
 6 public static void PointerClickEvent(Action action, GameObject MyObject)
 7 {
 8     // 定义所要绑定的事件类型
 9     EventTrigger.Entry entry = new EventTrigger.Entry();
10     // 设置事件类型
11     entry.eventID = EventTriggerType.PointerClick;
12     // 初始化回调函数
13     entry.callback = new EventTrigger.TriggerEvent();
14     // 定义回调函数
15     UnityEngine.Events.UnityAction<BaseEventData> callBack = new UnityEngine.Events.UnityAction<BaseEventData>(((BaseEventData baseEventData) => {
16         action();
17     }));
18     // 绑定回调函数
19     entry.callback.AddListener(callBack);
20     //添加事件组件,添加方法
21     MyObject.AddComponent<EventTrigger>().triggers.Add(entry);
22 }

第二种情况

 1 /// <summary>
 2        /// 开始拖拽并获取位置
 3        /// </summary>
 4        /// <param name="action"></param>
 5        /// <param name="MyObject"></param>
 6        public static void DragEvent(Action<PointerEventData> action, GameObject MyObject)
 7        {
 8            // 定义所要绑定的事件类型
 9            EventTrigger.Entry entry = new EventTrigger.Entry();
10            // 设置事件类型
11            entry.eventID = EventTriggerType.Drag;
12            // 初始化回调函数
13            entry.callback = new EventTrigger.TriggerEvent();
14            // 绑定回调函数
15            entry.callback.AddListener((baseEventData) =>action(baseEventData as PointerEventData));
16            //添加事件组件,添加方法
17            MyObject.AddComponent<EventTrigger>().triggers.Add(entry);
18        }

 

posted @ 2022-07-12 17:03  枫亦  阅读(17)  评论(0)    收藏  举报