Unity3D中手動新增Button的各類觸發器
阿新 • • 發佈:2019-02-06
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的各類事件。
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.");
}