通用的EventTriggerListener事件监听

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.EventSystems;                     //事件系统
 
public class EventTriggerListener : UnityEngine.EventSystems.EventTrigger
{  

    public delegate void VoidDelegate(GameObject go);
    public VoidDelegate onClick;
    public VoidDelegate onDown;
    public VoidDelegate onEnter;
    public VoidDelegate onExit;
    public VoidDelegate onUp;
    public VoidDelegate onSelect;
    public VoidDelegate onUpdateSelect;
    public VoidDelegate onDrag;
    public VoidDelegate onBeginDrag;
    public VoidDelegate onEndDrag;


    /// <summary>
    /// 得到“监听器”组件
    /// </summary>
    /// <param name="go">监听的游戏对象</param>
    /// <returns>
    /// 返回监听器
    /// </returns>
    public static EventTriggerListener Get(GameObject go)
    {
        EventTriggerListener lister = go.GetComponent<EventTriggerListener>();
        if (lister==null)
        {
            lister = go.AddComponent<EventTriggerListener>();
        }

        return lister;

    }

    public override void OnPointerClick(PointerEventData eventData)
    {
        base.OnPointerClick(eventData);
        if (onClick!=null)
        {
            onClick(gameObject);
        }
    }

    public override void OnPointerDown(PointerEventData eventData)
    {
        base.OnPointerDown(eventData);
        if (onDown != null)
        {
            onDown(gameObject);
        }
    }

    public override void OnPointerEnter(PointerEventData eventData)
    {
        base.OnPointerEnter(eventData);
        if (onEnter != null)
        {
            onEnter(gameObject);
        }
    }

    public override void OnPointerExit(PointerEventData eventData)
    {
        base.OnPointerExit(eventData);
        if (onExit != null)
        {
            onExit(gameObject);
        }
    }

    public override void OnPointerUp(PointerEventData eventData)
    {
        base.OnPointerUp(eventData);
        if (onUp != null)
        {
            onUp(gameObject);
        }
    }

    public override void OnSelect(BaseEventData eventData)
    {
        base.OnSelect(eventData);
        if (onSelect != null)
        {
            onSelect(gameObject);
        }
    }

    public override void OnUpdateSelected(BaseEventData eventData)
    {
        base.OnUpdateSelected(eventData);
        if (onUpdateSelect != null)
        {
            onUpdateSelect(gameObject);
        }
    }

    public override void OnDrag(BaseEventData eventData)
    {
        base.OnDrag(eventData);
        if (onDrag != null)
        {
            onDrag(gameObject);
        }
    }

    public override void OnBeginDrag(BaseEventData eventData)
    {
        base.OnBeginDrag(eventData);
        if (onBeginDrag != null)
        {
            onBeginDrag(gameObject);
        }
    }

    public override void OnEndDrag(BaseEventData eventData)
    {
        base.OnEndDrag(eventData);
        if (onEndDrag != null)
        {
            onEndDrag(gameObject);
        }
    }

}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值