给挂载该脚本的物体自动添加 EventTrigger 组件:
[RequireComponent(typeof(EventTrigger))]
public class ModelComponent : MonoBehaviour
{
}
给物体动态添加 EventTrigger 的触发事件:
private void AddEventTriggerFun(EventTriggerType eventTriggerType, UnityEngine.Events.UnityAction<BaseEventData> unityAction)
{
// 定义所要绑定的事件类型
EventTrigger.Entry entry = new EventTrigger.Entry();
// 设置事件类型
entry.eventID = eventTriggerType;
// 初始化回调函数
entry.callback = new EventTrigger.TriggerEvent();
// 定义回调函数
UnityEngine.Events.UnityAction<BaseEventData> callBack = new UnityEngine.Events.UnityAction<BaseEventData>(unityAction);
// 绑定回调函数
entry.callback.AddListener(callBack);
eventTrigger.triggers.Add(entry);
}
调用测试:
private EventTrigger eventTrigger;
private void Start()
{
eventTrigger = GetComponent<EventTrigger>();
EventTest();
}
private void EventTest()
{
AddEventTriggerFun(EventTriggerType.PointerClick, (BaseEventData baseEventData) => { ClickEvent(); });
}
private void ClickEvent()
{
Debug.Log("点击事件绑定成功...");
}