直接上代码吧
EventTrigger trigger = obj.GetComponent<EventTrigger>();//obj是需要绑事件的物体
if (trigger == null)
{
trigger = obj.AddComponent<EventTrigger>();
}
if (trigger.triggers.Count == 0)
{
//定义所要绑定的事件类型
EventTrigger.Entry entry = new EventTrigger.Entry();
//设置事件类型
entry.eventID = EventTriggerType.PointerDown;
//初始化回调函数
entry.callback = new EventTrigger.TriggerEvent();
//定义回调函数
UnityEngine.Events.UnityAction<BaseEventData> callback = new UnityEngine.Events.UnityAction<BaseEventData>(DropFun);
//设置回调函数
entry.callback.AddListener(callback);
//添加事件触发记录到GameObject的事件触发组件
trigger.triggers.Add(entry);
//回调函数
public void DropFun(BaseEventData data)
{
}
当有多个时可以把这个步骤封装成一个方法
/// <summary>
/// event事件绑定的方法
/// </summary>
/// <param name="insObject">事件物体</param>
/// <param name="eventType">事件类型</param>
/// <param name="myFunction">事件需要的回调方法</param>
public void AddEventTrigger(Transform insObject, EventTriggerType eventType, UnityEngine.Events.UnityAction<BaseEventData> myFunction)//泛型委托
{
EventTrigger trigger = insObject.GetComponent<EventTrigger>();
EventTrigger.Entry entry = new EventTrigger.Entry();
entry.eventID = eventType;
entry.callback.AddListener(myFunction);
trigger.triggers.Add(entry);
}
//调用
AddEventTrigger(obj.transform, EventTriggerType.PointerDown, DropFun);
目前就这样了 博主也在持续学习