Unity 怎么像OnClick()一样添加更多其他点击事件


Unity自身的Button组件的点击事件是无参数的OnClick()。更多要求是没办法达成的。
所以自己通过几行的代码。添加更多的点击状态。
想要更多丰富的功能的话。只要在对应的方法里面添加即可。


1. 比较简单了,是个基本的父类。就几段,所以老规矩上脚本吧。

public abstract class UIEventManagers : MonoBehaviour ,IPointerClickHandler,IPointerDownHandler,IPointerEnterHandler,IPointerExitHandler,IPointerUpHandler{

    public UnityEvent onPointerDown;
    public UnityEvent onPointerUp;
    public UnityEvent onPointerEnter;
    public UnityEvent onPointerClick;
    public UnityEvent onPointerExit;
    /// <summary>
    /// 鼠标点击
    /// </summary>
    /// <param name="eventData"></param>
    protected virtual void OnPointerClick(PointerEventData eventData)
    {
        onPointerClick.Invoke();
    }
    
    /// <summary>
    /// 鼠标退出
    /// </summary>
    /// <param name="eventData"></param>
    protected virtual void OnPointerExit(PointerEventData eventData)  
    {
        onPointerExit.Invoke();
    }
    /// <summary>
    /// 鼠标进入
    /// </summary>
    /// <param name="eventData"></param>
    protected virtual void OnPointerEnter(PointerEventData eventData)  
    {
        onPointerEnter.Invoke();
    }
    /// <summary>
    /// 鼠标按下
    /// </summary>
    /// <param name="eventData"></param>
    protected virtual void OnPointerUp(PointerEventData eventData)  
    {
        onPointerUp.Invoke();
    }
    /// <summary>
    /// 鼠标抬起
    /// </summary>
    /// <param name="eventData"></param>
    protected virtual void OnPointerDown(PointerEventData eventData)  
    {
        onPointerDown.Invoke();
    }


 # region .
    void IPointerClickHandler.OnPointerClick(PointerEventData eventData)
    {
        OnPointerClick(eventData);
    }

    void IPointerDownHandler.OnPointerDown(PointerEventData eventData)
    {
        OnPointerDown(eventData);
    }

    void IPointerEnterHandler.OnPointerEnter(PointerEventData eventData)
    {
        OnPointerEnter(eventData);
    }

    void IPointerExitHandler.OnPointerExit(PointerEventData eventData)
    {
        OnPointerExit(eventData);
    }

    void IPointerUpHandler.OnPointerUp(PointerEventData eventData)
    {
        OnPointerUp(eventData);
    }
#endregion .
}
继承这个类,然后书写更多的功能吧。然后脚本绑定在一个UI上面就可以了。


这里写图片描述

我是李本心明


首先谢谢大家的支持,其次如果你碰到什么其他问题的话,欢迎来 我自己的一个 讨论群559666429来(扫扫下面二维码或者点击群链接 Unity3D[ 交流] ),大家一起找答案,共同进步

由于工作生活太忙了,对于大家的帮助时间已经没有之前那么充裕了。如果有志同道合的朋友,可以接受无偿的帮助别人,可以加我QQ单独联系我,一块经营一下。

在这里插入图片描述


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值