zoukankan      html  css  js  c++  java
  • 【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

  • 相关阅读:
    PHP自动加载(__autoload和spl_autoload_register)
    抽象工厂模式
    工厂方法模式
    简单工厂模式
    组合
    二叉树的层次遍历 II
    umask命令
    二叉树的所有路径
    CDN缓存的理解
    Js中RegExp对象
  • 原文地址:https://www.cnblogs.com/guxin/p/unity-how-to-dynamically-add-button-click-event-by-code.html
Copyright © 2011-2022 走看看