博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
UIButton vs UIEventListener 事件处理
阅读量:6899 次
发布时间:2019-06-27

本文共 1096 字,大约阅读时间需要 3 分钟。

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功能非常相似

 

文献资料

另附这篇文章写的很不错:

本文转自赵青青博客园博客,原文链接:http://www.cnblogs.com/zhaoqingqing/p/3890695.html,如需转载请自行联系原作者

你可能感兴趣的文章
Android 下使用 JSON 实现 HTTP 请求
查看>>
如何成为“10倍效率”开发者
查看>>
IE和FF 常见问题
查看>>
smarty常见问题n
查看>>
C#开发的高性能EXCEL导入、导出工具DataPie(支持MSSQL、ORACLE、ACCESS,附源码下载地址)...
查看>>
40幅极具创意的街头墙绘艺术作品欣赏(上篇)
查看>>
matlab gui 命令大全
查看>>
PTC FlexPLM rfa 接口自动创建产品规格
查看>>
转 使用JavaScript和DOM动态创建表格
查看>>
myeclipse安装svn插件的多种方式
查看>>
usb键鼠标驱动分析
查看>>
Ecshop安装过程中的的问题:cls_image::gd_version()和不支持JPEG
查看>>
ArcPad 10 的安装部署
查看>>
android dialog加载中动画效果
查看>>
Android SQLite 事务处理
查看>>
Ruby环境配置
查看>>
JDBCTemplate基础学习
查看>>
UVA - 10714 Ants
查看>>
EF框架step by step(6)—处理实体complex属性
查看>>
Codeforces Round #345 (Div. 1) A - Watchmen 容斥
查看>>