NGUI的事件

在使用NGUI的事件处理时,发现UIButton和UIEventListener之间的共同点越来越多。

当然处理事件,也有一些其它的函数,比如:UIEventTrigger,ButtonMessage 等等,但我用的最多的就是UIButton和UIEventListener

我们知道,只要一个GameObject上添加了Collider(BoxCollider)并且它放在UICamera所渲染的Layer下,

OnClick函数

那么当你在脚本中写OnClick()函数时,当我们单击这个Collider时,就会触发这个OnClick()函数。

using UnityEngine;
using System.Collections; public class ClickTest : MonoBehaviour
{
void OnClick()
{
CBase.Log("click");
}
}

事件调用堆栈

(图) 调用堆栈

UIEventListener

因此,我们要使用UIEventListener 来响应UI事件,我们需要做两件事

1)给UI控件添加BoxCollider,同时添加UIEventListener脚本

2) 调用委托的方法

UIEventlistener的函数

UIEventlistener的源文件放在Scripts/Internal/下,可知这个脚本的重要性。

打开这个脚本,可以看到里面写了很多的委托。

UIEventListener用法一

UIEventListener.Get(gameObject).onClick += MyClickFunction;

其实就是在执行OnClick() 方法,而OnClick()是VoidDelegate(Gameobject go)

UIEventListener用法二

StartBtn.GetComponent<UIEventListener>().onClick = OnButtonClick;  void OnButtonClick(GameObject obj)

UIButton

基本上来说如果只是处理事件,可以用UIEventListener代替UIButton

UIButton的不同状态图片功能和以前2.X版本中的ImageButton功能非常相似

文献资料

另附这篇文章写的很不错:使用UIEventListener响应NGUI事件

UIButton vs UIEventListener 事件处理的更多相关文章

  1. 4. UIButton的使用

    1. UIButton的初认识 来自:http://www.cnblogs.com/mcj-coding/p/5103891.html QQ:853740091 1.1 UIButton 是iOS 开 ...

  2. 【转】监听按钮除OnClick外其他事件的方法,附简易改编的UIButton类

    http://lib.csdn.net/article/unity3d/38463 作者:IceFantasyLcj 大家好,我是雨中祈雨.一直以来,CSDN都是我最好的编程助手.这是我在CSDN的第 ...

  3. 【转】 NGUI 监听按钮除OnClick外其他事件的方法,附简易改编的UIButton类

    http://blog.csdn.net/icefantasylcj/article/details/49450555 大家好,我是雨中祈雨.一直以来,CSDN都是我最好的编程助手.这是我在CSDN的 ...

  4. IOS UIButton用法详解

    这段代码动态的创建了一个UIButton,并且把相关常用的属性都列举了.希望对大家有用.   //这里创建一个圆角矩形的按钮UIButton *button1 = [UIButton buttonWi ...

  5. UIButton、UILabel、UITextField 初学者需要了解的基本定义和常用设置

     以下是三个IOS开发中最常用的控件,作为IOS基础学习教程知识 ,初学者需要了解其基本定义和常用设置,以便在开发在熟练运用. UIButton按钮 第一.UIButton的定义 UIButton * ...

  6. ios基础篇(三)——UIButton的详细介绍

    按钮UIButton是ios开发中最常见的控件之一,下面来介绍UIButton的详细内容: 一.UIButton的定义 UIButton *button=[[UIButton buttonWithTy ...

  7. UIButton的简单操作和实际应用

    不能使用点语法创建button的文本和颜色,因为button具有多种状态   //这里创建一个圆角矩形的按钮UIButton *button1 = [UIButton buttonWithType:U ...

  8. UITableViewCell上的按钮点击事件处理

    转自:  http://www.aichengxu.com/view/42871 UITableViewCell上的按钮点击事件处理,有需要的朋友可以参考下. 今天突然做项目的时候,又遇到处理自定义的 ...

  9. (转)UIButton用法详解一

    (注明 来源网址 http://blog.csdn.net/cheneystudy/article/details/8115092)这段代码动态的创建了一个UIButton,并且把相关常用的属性都列举 ...

随机推荐

  1. mysqlbinlog命令介绍及实战

    MySQL的binlog日志的作用 - 1:用来记录mysql内部增删改查等对MySQL数据有更新内容的记录.像show和select一般不会记录 - 2:mysqlbinlog --base64-o ...

  2. JAVA WEB 过滤器(Filter)中向容器 Spring 注入 bean

    如果直接使用 @Autoware 获取 bean 会直接使该 bean 为 null,这是因为这种配置过滤器的方法无法在过滤器中使用 Spring bean,因为 Filter 比 bean 先加载, ...

  3. JavaScript之String总汇

    一.常用属性 ·length:返回字符串中字符长度 let str = 'asd '; str.length = 1;//无法手动修改,只读 console.log(str.length);//4 二 ...

  4. 【JVM】2、JVM调优总结

    转自:http://unixboy.iteye.com/blog/174173/ 堆大小设置JVM 中最大堆大小有三方面限制:相关操作系统的数据模型(32-bt还是64-bit)限制:系统的可用虚拟内 ...

  5. Java学习第二篇 — 时间类的使用

    package DateTest; import java.util.Date; public class Date1 { public static void main(String[] args) ...

  6. Fibonacci (hdu1568)数学公式

    Fibonacci Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Subm ...

  7. mongodb远程连接访问

    随着云计算,云服务的不断发展演进,数据库的管理及维护方式也在转变,传统基于C/S客户端工具管理的方式,已经无法满足实际需要. TreeSoft数据库管理系统,采用web方式,对mongoDB,MySQ ...

  8. Entity FrameWork(实体框架)是以ADO.NET Entity FrameWork ,简称为EF

    Entity FrameWork(实体框架)是以ADO.NET Entity FrameWork ,简称为EF Entity FrameWork的特点 1.支持多种数据库(MSSQL.Oracle.M ...

  9. element-ui Tag、Dialog组件源码分析整理笔记(五)

    Tag 标签组件 <script> export default { name: 'ElTag', props: { text: String, closable: Boolean, // ...

  10. 【代码笔记】iOS-长条label

    一,效果图. 二,代码. ViewController.m - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup ...