How does Unity use code to add trigger events to EventTrigger?

insert image description here

using UnityEngine;
using UnityEngine.Events;
using UnityEngine.EventSystems;

public class TestEventTrigger : MonoBehaviour
{
    
    
    [SerializeField] private EventTrigger _evnetTrigger;

    private void Start()
    {
    
    
        _evnetTrigger.triggers.Add(GeneratorEntry(EventTriggerType.PointerDown, OnPointerDownEventHandle));
        _evnetTrigger.triggers.Add(GeneratorEntry(EventTriggerType.Drag, OnDragEventHandle));
    }

    private void OnPointerDownEventHandle(BaseEventData eventData)
    {
    
    
        Debug.Log("点击了Image");
    }
    private void OnDragEventHandle(BaseEventData baseEventData)
    {
    
    
        PointerEventData pointerEventData = (PointerEventData)baseEventData;
        Debug.Log(pointerEventData.delta);
    }



    private EventTrigger.Entry GeneratorEntry(EventTriggerType eventTriggerType,UnityAction<BaseEventData> callBack)
    {
    
    
        EventTrigger.TriggerEvent triggerEvent = new EventTrigger.TriggerEvent();
        triggerEvent.AddListener(callBack);

        return new EventTrigger.Entry() {
    
     eventID = eventTriggerType, callback = triggerEvent };

    }
}

Guess you like

Origin blog.csdn.net/qq_30163099/article/details/131862663