Unity3D的ugui之按钮事件

为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 ()”的区域,点击该区域的“+”号,可以添加一个触发项,触发项前面可以选择一个任意的游戏对象,当选择了游戏对象之后后面就可以选择该对象上的一个任意方法,选择好之后,当我们点击了该按钮对象之后就会调用到选择的游戏对象的制定方法。

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

时间: 2024-08-27 11:10:42

Unity3D的ugui之按钮事件的相关文章

UGUI按钮事件获取触发按钮自身组件

UGUI按钮事件中往往出现N个按钮同时调用同一个按钮事件函数的情况,然而当按钮比较多的情况下点击触发后要获取该按钮的属性中的组件内容时应该这么操作: 1,首先在按钮属性中添加一个点击事件: 2,把写好的public触发事件绑定的对象拖到指定位置,并选择所写的函数名: 3,到这里是关键了,如何获取按钮触发时所触发的对象呢?其实很简答, 就是触发时在函数中传递参数,而这个参数是按钮本身即可: public void BusineseTypeButtonBnt(GameObject sender) {

Ugui按钮事件添加方法

按钮事件添加方法3个例子 Eg1: using UnityEngine; using System.Collections; using UnityEngine.Events;//引用事件命名空间 using UnityEngine.UI;//引用UI命名空间 public class Test : MonoBehaviour { // Use this for initialization void Start () { //定义Action,并赋予delegate方法 UnityAction

Unity3D中uGUI事件系统简述及使用方法总结

Unity3D的uGUI系统的将UI可能触发的事件分为12个类型,即EventTriggerType枚举的12个值.如下图所示: 先以PointerClick为例.这个是用于某点点击事件.其他事件都可以根据相同的办法调用. 之所以使用PointerClick为例.是因为在最后笔者会提到一个特殊的实现方式.而相比于其他事件类型,有且仅有Click事件存在特殊实现. 我们要实现事件主要有3种方式: 方式一:继承基础接口实现 步骤一:创建ClickObject脚本.继承MonoBehaviour和IP

Unity 4.6的使用匿名delegate处理uGUI控件事件绑定

最近在尝试Unity 4.6新版的uGUI.Unity很多操作是要在Inspector中指定,这种方式十分容易上手,甚至一些策划.美术同学也可以做一些东西,很不错.但是有些情况对于程序来说就不适合了.例如,我有10个技能按钮,当点击到某个按钮时触发其对应的技能.如果每个按钮都手动绑定到某个函数,是不是很麻烦?另外,绑定的这个函数还是没有参数的,难道要写10个函数处理同一个逻辑吗?瞬间觉得十分蛋疼,有没有? 针对这种情况,给出一个解法,假设我们已经编辑好了n个Button对象: public cl

IDA学习笔记--VS2008按钮事件捕捉

http://blog.csdn.net/ccnyou/article/details/8521611 IDA笔记--VS2008按钮事件捕捉 用到工具: IDA Proc C32Asm Rescope VS2008 LordPE 实例程序:MFCDemo.exe(附下载链接),我们目标是找到Button1对应的函数的地址处 附件包含:博客文章原文文档,文章中用到的MFCDemo程序. 下载链接:http://download.csdn.net/detail/ccnyou/5012040 1,首

iOS代码实现:创建按钮,绑定按钮事件,读取控件值

// // main.m // Hello // // Created by lishujun on 14-8-28. // Copyright (c) 2014年 lishujun. All rights reserved. // #import <UIKit/UIKit.h> // 视图控制器对象 @interface HelloWorldViewController : UIViewController @property (nonatomic, retain) IBOutlet UIT

android开发步步为营之22:处理Activity中的back按钮事件

在手机应用中,用户点击回退按钮一般是返回上个页面,一般页面不用处理,如果在首页,点回退,没任何提示,就把应用给关了,这个用户体验就不太好了,所以一般都会给用户一个确认的提示:是否退出?免得用户误操作. 一. Activity 中处理 @Override public boolean onKeyDown( int keyCode, KeyEvent event) { // TODO Auto-generated method stub Toast.makeText( this , "onkeydo

安卓之页面跳转与传值和按钮事件

一:新建页面 即新建Activity,new-other-Android Activity,next, 新建Activity的时候, 1:eclipse会自动创建Layout,我们发现Layout目录下会多了对应的xml文件: 2:ec会自动在AndroidManifest.xml中创建对应的activity节点: 需要注意的是,这些都是ec帮我们自动创建的,我们完全可以手动创建 class,然后让它继承自activity,然后指定layout的那个xml,然后手动创建节点完成. 二:点击按钮进

MVC中使用内建的HTML辅助方法产生表单元素提交表单与button按钮事件的陷阱

网站模板页有个登陆的退出按钮,当点击时跳转到登陆页面. <button onclick="logout()" >退出</button> $("#logOut").click(function () { location.href = "@Url.Action("Logout", "Account")"; }); 然后再某个页面楼主用了HTML辅助方法产生表单元素,代码如下所示: @H