问题:多数情况下用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

【Unity】用代码给按钮动态添加点击事件的更多相关文章

  1. [Swift通天遁地]一、超级工具-(1)动态标签:给UILabel文字中的Flag和url添加点击事件

    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs. ...

  2. [转]jquery append 动态添加的元素事件on 不起作用的解决方案

    用jquery添加新元素很容易,面对jquery append 动态添加的元素事件on 不起作用我们该如何解决呢?on方法中要先找到原选择器(如例.info),再找到动态添加的选择器(如列.delet ...

  3. jquery append 动态添加的元素事件on 不起作用的解决方案

    用jquery添加新元素很容易,面对jquery append 动态添加的元素事件on 不起作用我们该如何解决呢?on方法中要先找到原选择器(如例.info),再找到动态添加的选择器(如列.delet ...

  4. jquery mobile Checkbox动态添加刷新及事件绑定

    jquery mobile Checkbox动态添加刷新及事件绑定 在微信项目中,涉及到一个多选功能.数据来自后台数据库,需要动态加载. 项目结构:微信api+web app.使用jquery mob ...

  5. 用jquery添加新元素很容易,面对jquery append 动态添加的元素事件on 不起作用我们该如何解决呢?

    用jquery添加新元素很容易,面对jquery append 动态添加的元素事件on 不起作用我们该如何解决呢?on方法中要先找到原选择器(如例.info),再找到动态添加的选择器(如列.delet ...

  6. ThinkPHP框架下,给jq动态添加的标签添加点击事件移除标签

    jq移除标签主要就是$("#要移除的id").remove();不再赘述,这里要提醒的是jq中动态添加标签后怎样添加点击事件.一般的jq添加点击事件是用这种方法$("#i ...

  7. jquery无法为动态生成的元素添加点击事件的解决方法

    遇到 jquery无法为动态生成的元素添加点击事件,谷歌一下,整理一下解决方法如下: (<li>中间的元素是动态生成的), 现在想为<i>添加点击事件, 例子如下: <d ...

  8. jquery:为动态加载的元素添加点击事件

    jquery:为动态加载的元素添加点击事件 最近在做项目的时候遇到了这样一个问题,给用ajax动态加载出来的内容添加点击事件,但是怎么都触发不了,经过查询试验总结出正确的写法 在jquery1.7之前 ...

  9. a标签添加点击事件

      a标签添加点击事件 CreateTime--2017年8月8日09:11:34 Author:Marydon 一.基础用法 方式一:(不推荐使用) <a href="javascr ...

随机推荐

  1. 通过JS控制各种元素的点击事件的【时间间隔】,特别适合【发表评论】功能

    1.使用情景模拟:下单(防止用户无脑狂点).支付(防止用户无脑点击支付).发表评论(防止用户无脑点击),当然如果你用了一个提示框进行屏蔽,下面代码可以无视了,右上角谢谢. 2.默写情景比如:比如发表评 ...

  2. MySQL5.7 二进制源码包安装

    一般平时安装MySQL都是源码包安装的,但是由于它的编译需要很长的时间,所以建议安装二进制免编译包.可以到MySQL官方网站去下载,也可以到comsenz官方网站下载,还有各大镜像站下载. 下载安装包 ...

  3. 【LeetCode】44. Wildcard Matching (2 solutions)

    Wildcard Matching Implement wildcard pattern matching with support for '?' and '*'. '?' Matches any ...

  4. 常用ms-dos命令

    netstat -ano 列出所有的活动链接netstat -ano|findstr 8080(也可以是pid号) 找到端口为8080的程序,例下图

  5. ExpandoObject与DynamicObject的使用

    using ImpromptuInterface; using System; using System.Dynamic; namespace ConsoleApp2 { class Program ...

  6. oc引入头文件

    建立.h的头文件(header file)命名为Hi.h,源码如下: #ifndef oc3_Hi_h #define oc3_Hi_h void sayHi(); #endif 建立.c的头文件(c ...

  7. Fix-Mapped Addresses

    一.前言 某天,wowo同学突然来了一句:如果要在start_kernel中点LED,ioremap在什么时间点才能调用呢?我想他应该是想通过点LED灯来调试start_kernel之后的初始化的代码 ...

  8. ZOJ 1654 Place the Robots建图思维(分块思想)+二分匹配

    题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=654 AC一百道水题,不如AC一道难题来的舒服. 题意:一个n*m地图 ...

  9. Hive查看table在HDFS上的存储路径

    hive>show databases;hive>use databasename;hive>show create table tablename; --查看table的存储路径h ...

  10. vim:关于映射和跳出括号

    先说如何自动补全. 命令:vim .vimrc inoremap ( ()<ESC>i inoremap [ []<ESC>i inoremap { {}<ESC> ...