unity的简化型EventTrigger

34 篇文章 0 订阅
using System;
using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.UI;


/// <summary>
/// 简化型EventTrigger
/// </summary>
public class EventTriggerListener : EventTrigger
{
    public Action onClick = null;
    public Action onDown = null;
    public Action onEnter = null;
    public Action onExit = null;
    public Action onUp = null;
    public Action onDrag = null;
    public Action onBeginDrag = null;
    public Action onEndDrag = null;
    public Action onCancel = null;

   
    static public EventTriggerListener Get(Graphic r_graphic)
    {
        if (r_graphic != null)
        {
            return Get(r_graphic.gameObject);
        }
        return null;
    }

    static public EventTriggerListener Get(GameObject r_go)
    {
        if (r_go != null)
        {
            EventTriggerListener listener = r_go.GetComponent<EventTriggerListener>();
            if (listener == null)
            {
                listener = r_go.AddComponent<EventTriggerListener>();
            }
            return listener;
        }
        return null;
    }

    public void Clear()
    {
        this.onClick = null;
        this.onDown = null;
        this.onEnter = null;
        this.onExit = null;
        this.onUp = null;
        this.onDrag = null;
        this.onBeginDrag = null;
        this.onEndDrag = null;
        this.onCancel = null;
    }
    public override void OnCancel(BaseEventData eventData)
    {
        onCancel?.Invoke();
    }
    public override void OnPointerClick(PointerEventData r_eventData)
    {
        onClick?.Invoke();
    }
    public override void OnPointerDown(PointerEventData r_eventData)
    {
        onDown?.Invoke();
    }
    public override void OnPointerEnter(PointerEventData r_eventData)
    {
        onEnter?.Invoke();
    }
    public override void OnPointerExit(PointerEventData r_eventData)
    {
        onExit?.Invoke();
    }
    public override void OnPointerUp(PointerEventData r_eventData)
    {
        onUp?.Invoke();
    }

    public override void OnBeginDrag(PointerEventData r_eventData)
    {
        base.OnBeginDrag(r_eventData);
        onBeginDrag?.Invoke();
    }

    public override void OnDrag(PointerEventData eventData)
    {
        base.OnDrag(eventData);
        onDrag?.Invoke();
    }

    public override void OnEndDrag(PointerEventData eventData)
    {
        base.OnEndDrag(eventData);
        onEndDrag?.Invoke();
    }
}


  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值