【Unity】用代码给按钮动态添加点击事件

问题:多数情况下用UGUI的Button控件身上的OnClick()列表可以指明该按钮点击后触发的回调。现在想要调用自定义脚本里的方法,当这个脚本挂在Button所属的Canvas身上时,传入Canvas的引用虽然可以正常调用,但如果要把这个Button所属的物体作为预制体时,不知为何预制体无法保存Canvas的引用,于是考虑通过代码来给按钮添加点击回调。

using UnityEngine;
using System.Collections;
using UnityEngine.UI;

/// <summary>
/// 测试用代码给按钮添加点击事件
/// </summary>
public class BtnCallBackTest : MonoBehaviour {

    public Button startBtn; // 开始游戏按钮

    // Use this for initialization
    void Start () {
        startBtn.onClick.AddListener(delegate() {
            Debug.Log("test!");
        });
    }

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

    }

}

注意点:

  • 给按钮添加监听时,需要传入的是一个delegate对象,所以要用delegate来封装具体要调用的哪个类身上的方法。

重要参考:

http://www.tuicool.com/articles/nyeqie

posted @   霍莉雪特  阅读(4615)  评论(0)    收藏  举报
编辑推荐:
· Java线程池详解:高效并发编程的核心利器
· 从“看懂世界”到“改造世界”:AI发展的四个阶段你了解了吗?
· 协程本质是函数加状态机——零基础深入浅出 C++20 协程
· 编码之道,道心破碎。
· 记一次 .NET 某发证机系统 崩溃分析
阅读排行:
· dotnetty 新的篇章- 开源
· 这5种规则引擎,真香!
· DotTrace系列:1. 理解四大经典的诊断类型(上)
· 【大数据高并发核心场景实战】 - 数据持久化之冷热分离
· 【附源码】用Spring AI通杀所有MCP客户端,简直离谱!
点击右上角即可分享
微信分享提示