好久好久 沒給他更心了 只能說太忙了。好啦 最近使用到UNITY來作公司的案子,話不多說,來記錄一下再UNITY裡面 怎麼來傳遞按下按鈕的事件吧!!!!
上圖是我在UNITY世界裡面的元件,主要看兩個東西就好;CUBE(發送事件) 與 GMAEOBJECT(接收事件)。(記得要再MainCamera裡面掛載NGUI程式叫做UICAMERA)
這邊我用了兩種NGUI的SCRIPT,第一種是UIBUTTONMESSAGE,把他丟到按鈕(你要觸發的元件上)如下圖
好啦--第二種方法UIEventListener
把這程式丟在場景中隨便一個物件上都可以,他就像是神等級在監聽整個UNITY世界的物件事件般。接著在場景中隨便一個物件再掛載自己創立的程式,其內容為下圖
這邊我用了兩種NGUI的SCRIPT,第一種是UIBUTTONMESSAGE,把他丟到按鈕(你要觸發的元件上)如下圖
解釋一下這SCRIPT理面的細項
1.Script:不用說了吧 就是程式本身
2.Target:接收事件的物件(這很重要)
3.Function Name:再接收事件裡面,你要監聽的function。(意思是你可以有好多個接收function)
4.Trigger:按鈕的觸發方式(有超多種的啦)
5.Include Children:是個BOOL值,意思是是否包含子物件(應該是吧)
接著:你建立一個Script 放入監聽function就如下圖,並按下執行,他就有反應了
(在別的視頻教學有看過SendMessage用法 會有父與子的差別,但NGUI這個程式並沒有,其實他也是用UNTIY官網API提供的SendMessage延伸出來的,如下圖)
好啦--第二種方法UIEventListener
把這程式丟在場景中隨便一個物件上都可以,他就像是神等級在監聽整個UNITY世界的物件事件般。接著在場景中隨便一個物件再掛載自己創立的程式,其內容為下圖
說一下吧:在Awake function 中 創立一個物件叫做button 並且去FIND"尋找"UNITY世界中名為CUBE的元件。
在下一行UIEventListener.Get 取得按鈕是否被按下,假如有就執行ButtonClick function
在ButtonClick function中我們測試印出(gmaeobject.cube)有被按下去的話將會印出(那個"IN"是我自己亂家的)。下圖就試結果啦,以上。







留言