通过EventTrigger可以给按钮添加一系列事件(如onPointerDown、onPointerUp等)
可以在面板上手动添加,也可以代码添加
代码添加
eventTrigger = GetComponent<EventTrigger>();
EventTrigger.Entry onPointerDown = new EventTrigger.Entry ();
onPointerDown.eventID = EventTriggerType.PointerDown;
onPointerDown.callback.AddListener(OnPointerDown);//OnPointerDown为你写的按下后的回调函数
EventTrigger.Entry onPointerUp = new EventTrigger.Entry ();
onPointerUp.eventID = EventTriggerType.PointerUp;
onPointerUp.callback.AddListener(OnPointerUp);//OnPointerUp为你写的抬起后的回调函数
eventTrigger.triggers.Add(onPointerDown);
eventTrigger.triggers.Add(onPointerUp);
为了方便使用可以包装几层
public void AddEventTrigger (EventTrigger eventTri, EventTriggerType eventType, Callback<BaseEventData> myFunction)
{
EventTrigger.Entry entry = new EventTrigger.Entry ();
entry.eventID = eventType;
UnityAction<BaseEventData> callback = new UnityAction<BaseEventData> (myFunction);
entry.callback.AddListener (callback);
eventTri.triggers.Add (entry);
}
//insObject 为EventTrigger所在物体
public void AddEventTrigger (Transform insObject, EventTriggerType eventType, Callback<BaseEventData> myFunction) //泛型委托 泛型委托可自己定义
{
EventTrigger eventTri = insObject.GetComponent<EventTrigger> ();
AddEventTrigger (eventTri, eventType, myFunction);
}