首页 > 其他 > 详细

UIButton vs UIEventListener

时间:2014-08-04 20:42:07      阅读:431      评论:0      收藏:0      [点我收藏+]

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

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

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

bubuko.com,布布扣 bubuko.com,布布扣

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

using UnityEngine;
using System.Collections;

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

bubuko.com,布布扣

(图) 调用堆栈

 

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

bubuko.com,布布扣

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

2) 调用委托的方法

方法一:UIEventListener.Get(gameObject).onClick += MyClickFunction;

方法二:  StartBtn.GetComponent<UIEventListener>().onClick = OnButtonClick;

 

UIEventlistener

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

bubuko.com,布布扣

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

bubuko.com,布布扣

 

用法一:UIEventListener.Get(gameObject).onClick += MyClickFunction;

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

用法二:  StartBtn.GetComponent<UIEventListener>().onClick = OnButtonClick;  void OnButtonClick(GameObject obj)

bubuko.com,布布扣

UIButton

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

UIButton中的这个功能bubuko.com,布布扣 和以前2.X版本中的ImageButton功能非常相似

 

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

UIButton vs UIEventListener,布布扣,bubuko.com

UIButton vs UIEventListener

原文:http://www.cnblogs.com/zhaoqingqing/p/3890695.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!