天天看點

UIButton vs UIEventListener 事件處理

<a href="http://www.cnblogs.com/zhaoqingqing/p/3890695.html#t0">NGUI的事件</a>

<a href="http://www.cnblogs.com/zhaoqingqing/p/3890695.html#t1">OnClick函數</a>

<a href="http://www.cnblogs.com/zhaoqingqing/p/3890695.html#t2">事件調用堆棧</a>

<a href="http://www.cnblogs.com/zhaoqingqing/p/3890695.html#t3">UIEventListener</a>

<a href="http://www.cnblogs.com/zhaoqingqing/p/3890695.html#t4">UIEventlistener的函數</a>

<a href="http://www.cnblogs.com/zhaoqingqing/p/3890695.html#t5">UIEventListener用法一</a>

<a href="http://www.cnblogs.com/zhaoqingqing/p/3890695.html#t6">UIEventListener用法二</a>

<a href="http://www.cnblogs.com/zhaoqingqing/p/3890695.html#t7">UIButton</a>

<a href="http://www.cnblogs.com/zhaoqingqing/p/3890695.html#t8">文獻資料</a>

在使用NGUI的事件處理時,發現UIButton和UIEventListener之間的共同點越來越多。

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

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

UIButton vs UIEventListener 事件處理

那麼當你在腳本中寫OnClick()函數時,當我們單擊這個Collider時,就會觸發這個OnClick()函數。

UIButton vs UIEventListener 事件處理

(圖) 調用堆棧

是以,我們要使用UIEventListener 來響應UI事件,我們需要做兩件事

UIButton vs UIEventListener 事件處理

1)給UI控件添加BoxCollider,同時添加UIEventListener腳本

2) 調用委托的方法

UIEventlistener的源檔案放在Scripts/Internal/下,可知這個腳本的重要性。

打開這個腳本,可以看到裡面寫了很多的委托。

UIButton vs UIEventListener 事件處理
UIButton vs UIEventListener 事件處理

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

其實就是在執行OnClick() 方法,而OnClick()是VoidDelegate(Gameobject go)

StartBtn.GetComponent&lt;UIEventListener&gt;().onClick = OnButtonClick;  void OnButtonClick(GameObject obj)

UIButton vs UIEventListener 事件處理

基本上來說如果隻是處理事件,可以用UIEventListener代替UIButton

UIButton的不同狀态圖檔功能和以前2.X版本中的ImageButton功能非常相似

UIButton vs UIEventListener 事件處理

本文轉自趙青青部落格園部落格,原文連結:http://www.cnblogs.com/zhaoqingqing/p/3890695.html,如需轉載請自行聯系原作者

繼續閱讀