为Unity3D的按钮添加事件有三种方式,假设我们场景中有一个Canvas对象,Canvas对象中有一个Button对象。

方式一:

创建脚本ClickObject.cs,然后将脚本添加到Canvas对象上,脚本如下:

 1 using UnityEngine;
2 using System.Collections;
3 using UnityEngine.UI;
4 using UnityEngine.Events;
5
6 public class ClickObject : MonoBehaviour
7 {
8 void Start ()
9 {
10 //获取按钮游戏对象
11 GameObject btnObj = GameObject.Find ("Canvas/Button");
12 //获取按钮脚本组件
13 Button btn = (Button) btnObj.GetComponent<Button>();
14 //添加点击侦听
15 btn.onClick.AddListener (onClick);
16 }
17
18 void onClick ()
19 {
20 Debug.Log ("click!");
21 }
22 }

方式二:

脚本同样添加到Canvas对象上,如下:

 1 using UnityEngine;
2 using System.Collections;
3 using UnityEngine.UI;
4 using UnityEngine.Events;
5
6 public class ClickObject2 : MonoBehaviour
7 {
8 void Start ()
9 {
10 //获取按钮游戏对象
11 GameObject btnObj = GameObject.Find ("Canvas/Button");
12 //获取按钮脚本组件
13 Button btn = (Button) btnObj.GetComponent<Button>();
14 //添加点击侦听
15 btn.onClick.AddListener (delegate() {
16 onClick(btnObj);
17 });
18 }
19
20 void onClick (GameObject obj)
21 {
22 Debug.Log ("click: " + obj.name);
23 }
24 }

方式三:

之前的方式都是使用代码添加,下面的这个方式则是直接在编辑器中进行操作:

我们找到Button游戏对象,找到其Button代码组件,在组件最下方有一个“On Click ()”的区域,点击该区域的“+”号,可以添加一个触发项,触发项前面可以选择一个任意的游戏对象,当选择了游戏对象之后后面就可以选择该对象上的一个任意方法,选择好之后,当我们点击了该按钮对象之后就会调用到选择的游戏对象的制定方法。

该方式太简单就不写示例代码了。

天道酬勤,功不唐捐!

Unity3D的按钮添加事件有三种方式的更多相关文章

  1. PHP---TP框架---添加数据-----有三种方式

    添加数据 添加数据有三种方式: 第一种: <?php namespace Home\Controller;//这个文件的命名空间 use Think\Controller;//use使用哪一个而 ...

  2. GUI编程笔记(java)06:GUI窗体添加按钮并对按钮添加事件案例

    1.需求:把按钮添加到窗体,并对按钮添加一个点击事件. 步骤: (1)创建窗体对象(2)创建按钮对象(3)把按钮添加到窗体(4)窗体显示 2.编写程序思路: 窗体布局:窗体中组件的排列方式  布局分类 ...

  3. JS闭包导致循环给按钮添加事件时总是执行最后一个

    加入如下脚本代码: <script> var list_obj = document.getElementsByTagName('li'); for (var i = 0; i <= ...

  4. 【转】为ListView每个Item上面的按钮添加事件

    原文网址:http://blog.csdn.net/qq435757399/article/details/8256453 1.先看下效果图:        在这里仅供测试,我把数据都写死了,根据需要 ...

  5. 一百、SAP中ALV事件之十三,给ALV的自定义按钮添加事件

    一.我们查看定义的按钮,有一个名字是ZADD的自定义按钮 二.代码如下,用于判断点击了哪个按钮 三.点击测试按钮之后,会弹出一个弹窗 完美

  6. bootstraptable为行中的按钮添加事件

  7. Java添加事件的四种方式

    Java添加事件的几种方式(转载了codebrother的文章,做了稍微的改动) /** * Java事件监听处理——自身类实现ActionListener接口,作为事件监听器 * * @author ...

  8. Java添加事件的几种方式(转载了codebrother的文章)

    /** * Java事件监听处理——自身类实现ActionListener接口,作为事件监听器 * * @author codebrother */ class EventListener1 exte ...

  9. JS事件冒泡机制和兼容性添加事件

    本篇文章主要来讲讲 事件的冒泡机制 和 添加事件的几种方法. 一. JS的时间传递顺序: 捕获阶段 -> 目标阶段 -> 冒泡阶段 捕获阶段是指从父层往子层找.比如 <body> ...

随机推荐

  1. win10 tensorflow python3*,Multiprocessing using fit_generator(pickle_safe=True) fail问题解决

    由于WIN版本的tensorflow使用 fit_generator时候,出现错误,但是mac 不会出现, 所以的解决方法就是https://github.com/fchollet/keras/iss ...

  2. redis详细配置文件

    redis 单机版自己指定配置 #修改为守护模式 daemonize yes #设置进程锁文件 pidfile /usr/local/redis/redis.pid #端口 port 6379 #客户 ...

  3. mysql找到所有索引

    SELECT a.TABLE_SCHEMA,a.TABLE_NAME,a.index_name,GROUP_CONCAT(column_name ORDER BY seq_in_index) AS ` ...

  4. 线段树 + 区间更新 ----- HDU 4902 : Nice boat

    Nice boat Time Limit: 30000/15000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others)Tot ...

  5. DevExpressXtraReport—制作雷达图

    存储过程: SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- ========================================== ...

  6. Linux中添加快捷

    执行操作比较快捷: 1.R3 CGP平台下OMU系统中: Linux 版本:2.6.16.60-0.21-bigsmp vi /etc/profile 2.R2 Linux版本2.6.5-7.244- ...

  7. mysql 删除

    DROP删表,表结构将删了,当然数据也不存在了 TRUNCATE和DELETE删数据,表结构还在 DELETE可以带条件删除,TRUNCATE是全部删除 DELETE删除会写日志,TRUNCATE不写 ...

  8. (笔记)Linux中的终端、控制台、tty、pty

    1>tty(终端设备的统称): tty一词源于teletypes,或者teletypewriters,原来指的是电传打字机,是通过串行线用打印机键盘阅读和发送信息的东西,后来这东西被键盘与显示器 ...

  9. 关于Python的装饰器 decorator

    装饰器的原理:其实就是高阶函数,接收原函数以在之前之后进行操作. 语法格式是固定的:先定义一个函数,再使用@语法调用该函数. 例子一: import functools # 定义装饰器,固定格式 de ...

  10. android中清空一个表---类似truncate table 表名 这样的功能 android sqlite 清空数据库的某个表

    public void clearFeedTable(){ String sql = "DELETE FROM " + FEED_TABLE_NAME +";" ...