为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. docker安装及加速配置

    需要centos7版本,内核版本不低于3.10 [root@localhost ~]# uname -r3.10.0-514.el7.x86_64 第一步:更新当前软件:[root@localhost ...

  2. 根据时间获取最新数据 SQL(每一个人或者每一项)

    -- 方法1 select a.* from table1 a from table1 b where b.name=a.name and b.gdtime>a.gdtime) -- 方法2 s ...

  3. Z律师:创业项目如何玩转股权众筹?

    原文地址:http://mt.sohu.com/20150619/n415345889.shtml 大家好,这是Z律师创业学院第一期的结业课了,正式集中的课程,就到今天为止,未来有机会,还是会不定期安 ...

  4. 测试word发表博客

    哈哈哈 我测试一下 <ul class="clearfix"> <li> <div><img src="{IMG_PATH}qr ...

  5. Vue 获取自定义属性的值

    在jquery中,如果要获取 data-*** 的值可以通过 $('目标元素').data('属性名') 来获取. 在Vue中如何获取该值呢? 1.换个思路,作为参数传递. 如下代码: <but ...

  6. Java sun.misc.unsafe类

    Java是一个安全的开发工具,它阻止开发人员犯很多低级的错误,而大部份的错误都是基于内存管理方面的.如果你想搞破坏,可以使用Unsafe这个类.这个类是属于sun.*API中的类,并且它不是J2SE中 ...

  7. 内存映射文件(Memory-Mapped File)

    Java Memory-Mapped File所使用的内存分配在物理内存而不是JVM堆内存,且分配在OS内核. 1: 内存映射文件及其应用 - 实现一个简单的消息队列 / 计算机程序的思维逻辑 在一般 ...

  8. SQL server 分页方法小结

    这里面介绍一下常用的分页方法: 1.使用top来分页 select top @pageSize * from table where id not in (select top @pageSize*( ...

  9. 关于Unity中自带摇杆与车轮碰撞器的使用

    准备 在创建好项目目录的基础上 导入一个第三方的资源包,在Project面板里面 右键---->Import Package---->Custom Package---->easy_ ...

  10. Tensorboard on Server

    ssh -L 6006:localhost:5001 username@ml.cs.tsinghua.edu.cn -p 4513 6006是本地端口 5001是远程tensorboard绑定的端口