UI的EventTrigger事件运用

最近发现的一种鼠标与UI交互的一种事件方式

 // Start is called before the first frame update
    void Start()
    {
        AddEventTrigger(transform, EventTriggerType.PointerEnter, Enter);
        AddEventTrigger(transform, EventTriggerType.PointerExit, Exit);
        AddEventTrigger(transform, EventTriggerType.BeginDrag, BeginDrag);
        AddEventTrigger(transform, EventTriggerType.EndDrag, DownDrag);
    }

    // Update is called once per frame
    void Update()
    {

    }

    public void Enter(BaseEventData arg0)
    {
        print("进入");
    }
    public void Exit(BaseEventData arg0)
    {
        print("离去");
    }

    public void BeginDrag(BaseEventData arg0)
    {

        print("开始拖拽");
    }

    public void DownDrag(BaseEventData arg0)
    {
        print("结束拖拽");
    }


    public void AddEventTrigger(Transform theObj, EventTriggerType type, UnityAction<BaseEventData> p)//注意参数类型;
    {
        EventTrigger zxc = theObj.GetComponent<EventTrigger>();//判断有没有EventTrigger,把所有事件都集合在一个EventTrigger下。
        if (zxc == null)
        {
            zxc = theObj.gameObject.AddComponent<EventTrigger>();
        }
        EventTrigger.Entry qwe = new EventTrigger.Entry();
        qwe.eventID = type;
        qwe.callback.AddListener(p);
        zxc.triggers.Add(qwe);
    }

挂载需要交互的UGUI上

void Start()
    {
        AddEventTrigger(transform, EventTriggerType.BeginDrag, BeginDrag);
        AddEventTrigger(transform, EventTriggerType.EndDrag, EndDrag);
    }

    private void EndDrag(BaseEventData arg0)
    {
     
    }

    private void BeginDrag(BaseEventData arg0)
    {
       
    }

    // Update is called once per frame
    void Update()
    {
        
    }

    public void AddEventTrigger(Transform theObj, EventTriggerType type, UnityAction<BaseEventData> p)//注意参数类型;
    {

        EventTrigger zxc = theObj.GetComponent<EventTrigger>();//判断有没有EventTrigger,把所有事件都集合在一个EventTrigger下。

        if (zxc == null)

        {

            zxc = theObj.gameObject.AddComponent<EventTrigger>();

        }

        EventTrigger.Entry qwe = new EventTrigger.Entry();

        qwe.eventID = type;

        qwe.callback.AddListener(p);

        zxc.triggers.Add(qwe);


    }

ScrRect滑动监听

脚本放在ScrRect组件的物体上

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值