UGUI按钮的几种响应方式

1、  可视化绑定

这种方式就是写好一个带有public方法的脚本,然后在Button的OnClick事件位置添加对应的脚本及事件。这个方式的弊端是容易丢失绑定,适合少量的响应。

2、  脚本监听

脚本代码对按钮进行监听:btn.onclick.AddListener(“监听方法名”);然后实现对应的方法。但是当想要监听方法可以传参是该怎么写呢?

public class ButtonTest : MonoBehaviour {
    private Button btn;
    void Start () {
        btn = transform.GetComponent<Button>();
        //以下四种写法其实只是两种写法,就是delegate和lamda表达式
        btn.onClick.AddListener(delegate { OnButtonClick(gameObject); });
        btn.onClick.AddListener(delegate() { OnButtonClick(gameObject); });
        btn.onClick.AddListener(()=>OnButtonClick(gameObject));
        btn.onClick.AddListener(() => { OnButtonClick(gameObject); });

    }
    private void OnButtonClick(GameObject gameObject)
    {
        print(gameObject.name);
    }
}

通过delegate或者lamda表达式就可以达成目的。

3、  监听多种事件

有时候我们不止需要点击事件,还需要鼠标进入、悬浮、退出等事件。

这需要用到UGUI的组件EventTrigger,以下是实现点击事件的具体代码。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值