1. 程式人生 > >Unity3D中手動新增Button的各類觸發器

Unity3D中手動新增Button的各類觸發器

Unity3D中UGUI各類觸發事件主要通過EventSystem進行控制,當我們需要定製按鈕的各類觸發事件時,可以通過EventTrigger進行定製。
在Unity3D中,EventTrigger包含多個介面,每個介面均實現了一種實現方式,介面包括:

IBeginDragHandler
ICancelHandler
IDeselectHandler
IDragHandler
IDropHandler
IEndDragHandler
IEventSystemHandler
IInitializePotentialDragHandler
IMoveHandler
IPointerClickHandler
IPointerDownHandler
IPointerEnterHandler
IPointerExitHandler
IPointerUpHandler
IScrollHandler
ISelectHandler
ISubmitHandler
IUpdateSelectedHandler

我們可以在Inspector面板中進行設定,通過為Button控制元件新增EventTrigger,在EventTrigger元件中新增Event Type事件進行繫結。
如下圖所示:
EventTrigger面板
我們可以通過下方的按鈕進行事件繫結。
事件繫結

我們也可以通過程式碼在指令碼中動態新增EventTrigger的各類事件。

void Start()
    {
        EventTrigger trigger = GetComponent<EventTrigger>();
        EventTrigger.Entry entry = new EventTrigger.Entry();
        entry.eventID = EventTriggerType.PointerDown;
        entry.callback.AddListener((data) => { OnPointerDownDelegate((PointerEventData)data); })
; trigger.triggers.Add(entry); } public void OnPointerDownDelegate(PointerEventData data) { Debug.Log("OnPointerDownDelegate called."); }