unity 2D游戲開發(fā)教程4:(Unity事件廣播機(jī)制【觀察者模式】開發(fā))

教案如下:
課程知識點(diǎn):??
在游戲開發(fā)中想象下下面場景。例如:一個關(guān)卡場景里面,我們會有管理UI的GUIManager,管理游戲的GameManger,管理輸入的InputManager等等,當(dāng)關(guān)卡結(jié)束的代碼里面,我們經(jīng)常寫如下代碼:
GUIManager.instance.gameOver(); //處理UI上面的關(guān)卡結(jié)束顯示
GameManger.instance.gameOver();//處理整體游戲關(guān)卡結(jié)束邏輯,例如游戲生命復(fù)原
InputManager.instance.gameOver();//讓手柄,鍵盤等不能輸入等
如果還有很多組件要關(guān)卡結(jié)束時候處理業(yè)務(wù)的畫,這種代碼寫法是不可取的。
這個時候我們就要使用【事件廣播機(jī)制】,也就是在Unity項目里面用 (程序設(shè)計模式:觀察者模式),來優(yōu)化上面這種不可理代碼。
??我們今天來學(xué)習(xí)下CorgiEngin里面的事件廣播機(jī)制 (程序設(shè)計模式:觀察者模式),來看下用觀察者模式如何處理上面的問題。
?? 下面我們就來實(shí)現(xiàn)一下,只要一個Class就能完成自己游戲里面的事件分發(fā)機(jī)制了
1:創(chuàng)建我們的 MMEventManager,大家記住CorgiEngin引擎里面,EventManager放在那里的
2:在這個EventManager里面使用了ExecuteAlways,我們說明下作用
3:根據(jù)CorgiEngin的注釋,使用Event的步驟1,讓我們的GUIManager繼承MMEventListener 接口并監(jiān)聽MMGameEvent事件,表示GUIManager 要進(jìn)行隊MMGameEvent事件的監(jiān)聽
4:根據(jù)CorgiEngin的注釋,使用Event的步驟2,隊GUIManager重寫On Enable and Disable方法,Enable方法寫開始監(jiān)聽,Disable里面寫停止監(jiān)聽
5:?介紹C#語法學(xué)習(xí)(擴(kuò)展方法)
6:介紹C#語法學(xué)習(xí)(方法體內(nèi)out? 引用參數(shù))
7:介紹 C#語法 (#define 來控制工具類的報錯與否)
8:根據(jù)CorgiEngin的注釋,使用Event的步驟3,實(shí)現(xiàn)MMEventListener 接口方法
9:測試創(chuàng)建一個按鈕來進(jìn)行觸發(fā)Event
10“最后我們讓我們的GameManager也來監(jiān)聽這個Event