(轉)NGUI研究院之三種方式監聽NGUI的事件方法


NGUI事件的種類很多,比如點擊、雙擊、拖動、滑動等等,他們處理事件的原理幾乎萬全一樣,本文只用按鈕來舉例。

1.直接監聽事件

把下面腳本直接綁定在按鈕上,當按鈕點擊時就可以監聽到,這種方法不太好很不靈活。

 

2.使用SendMessage

選擇按鈕后,在Unity導航菜單欄中選擇Component->Interaction->Button Message 組件。

Target:接收按鈕消息的游戲對象。

Function Name:接收按鈕消息的方法,擁有這個方法的腳本必須綁定在上面Target對象身上。

Trigger:觸發的事件,OnClick顯然是一次點擊。

Include Children :是否讓該對象的所有子對象也發送這個點擊事件。

 

到UIButtonMessage.cs這個腳本中看看,其實很簡單就是調用Unity自身的SendMessage而已。

 

 3.使用UIListener

這個也是推薦大家使用的一種方法,選擇按鈕后在Unity導航菜單欄中選擇Component->NGUI->Internal ->Event Listener 。 掛在按鈕上就可以,它沒有任何參數。。

在任何一個腳本或者類中即可得到按鈕的點擊事件、把如下代碼放在任意類中或者腳本中。

 

怎么樣是不是很靈活?再看看它的源碼,使用的C#的代理,將UI的場景事件通過代理傳遞出去了。

 

但是有時候我們項目中需要監聽UI的東西可能不止這些,我們也可以拓展一下C#的事件方法。或者也可以使用 Unity3D研究院之通過C#使用Advanced CSharp Messenger(五十)

 

四,這里補充一點,還可以通過在Unity編輯器屬性視窗中制定事件的target和委托的方法來實現消息的傳遞:

如圖:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM