1 回答

TA貢獻(xiàn)1804條經(jīng)驗(yàn) 獲得超3個(gè)贊
關(guān)于Unity的架構(gòu)有如下幾種常用的方式。
1.EmptyGO
在Hierarchy上創(chuàng)建一個(gè)空的GameObject,然后掛上所有與GameObject無(wú)關(guān)的邏輯控制的腳本。使用GameObject.Find()訪問(wèn)對(duì)象數(shù)據(jù)。
缺點(diǎn):邏輯代碼散落在各處,不適合大型項(xiàng)目。
2.Simple GameManager
所有與GameObject無(wú)關(guān)的邏輯都放在一個(gè)單例中。
缺點(diǎn):單一文件過(guò)于龐大。
3.Manager Of Managers。
將不同的功能單獨(dú)管理。如下:
MainManager: 作為入口管理器。
EventManager: 消息管理。
GUIManager: 圖形視圖管理。
AudioManager: 音效管理。
*PoolManager: go管理(減少動(dòng)態(tài)開辟內(nèi)存消耗,減少GC)。
缺點(diǎn):
(1)不能管理prefabs。
(2)沒(méi)有進(jìn)行分類。
更好的實(shí)現(xiàn)方式是將一個(gè)PoolManager分成:
若干個(gè) SpawnPool。
每個(gè)SpawnPool分成PrefabPool和PoolManager。
PrefabPool負(fù)責(zé)Prefab的加載和卸載。
PoolManager與之前的PoolMananger功能一樣,負(fù)責(zé)GameObject的Spawn、Despawn和Trim。
要注意的是:
(1)每個(gè)SpawnPool是EmeptyGO。
(2)每個(gè)PoolManager管理兩個(gè)List (Active,Deactive)。
講了一堆,最后告訴有一個(gè)NB的插件叫Pool Manager- -。
*LevelManager: 關(guān)卡管理。
推薦插件:MadLevelManager。
GameManager: 游戲管理。
- 1 回答
- 0 關(guān)注
- 1074 瀏覽
添加回答
舉報(bào)