前言:UGUI系统中官方提供了一种Button控件,Button封装了官方提供的一套OnClick事件,如果该GameObject还需要支持按下,移入,移出等事件呢?这时候我们就需要添加EventTrigger组件。如果我们要给一个文本或是一张图片,添加鼠标响应事件,通过EventTrigger组件就变得易如反掌。今天我们实现的是动态添加EventTrigger组件并且动态添加触发事件。
运行前:

运行后:

直接贴出代码,因为注释写的很详细
- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine;
- using UnityEngine.UI;
- using UnityEngine.EventSystems;
- using UnityEngine.Events;
-
-
- public class newtest : MonoBehaviour {
-
- void Start ()
- {
- var trigger = transform.gameObject.GetComponent<EventTrigger>();
- if (trigger == null)
- trigger = transform.gameObject.AddComponent<EventTrigger>();
-
-
- trigger.triggers = new List<EventTrigger.Entry>();
-
-
- EventTrigger.Entry entry = new EventTrigger.Entry();
-
- entry.eventID = EventTriggerType.PointerClick;
-
- entry.callback = new EventTrigger.TriggerEvent();
-
- UnityAction<BaseEventData> callback = new UnityAction<BaseEventData>(OnScriptControll);
-
- entry.callback.AddListener(callback);
-
- trigger.triggers.Add(entry);
- }
-
-
- public void OnScriptControll(BaseEventData arg0)
- {
- Debug.Log("Test Click");
- }
-
- }