多個(gè)場(chǎng)景中加載相同的UI窗體圣贸?
放在“緩存”中挚歧。
各個(gè)UI腳本之間傳值扛稽,易出現(xiàn)“緊耦合”吁峻,導(dǎo)致項(xiàng)目“可復(fù)用性”降低?
各個(gè)UI間的交流、改變都需要通過(guò)Manager用含,UI間不直接聯(lián)系矮慕。
多個(gè)“彈出窗體”疊加情況下,需要手動(dòng)維護(hù)窗體間的層級(jí)關(guān)系啄骇?
使用“棾睁”數(shù)據(jù)結(jié)構(gòu),保存與控制當(dāng)前所有需要顯示的UI窗體間的層級(jí)關(guān)系缸夹。
彈出子窗體時(shí)痪寻,不允許操作父窗體?
對(duì)當(dāng)前窗體做“遮擋處理”虽惭。
架構(gòu)核心功能:
- UI窗體自動(dòng)加載
- 緩存UI窗體
- 窗體的生命周期管理
ResourcesMrg(資源加載管理器)
功能:加載資源
在Resources類的基礎(chǔ)橡类,增加了“緩存”的功能
SystemDefine(系統(tǒng)定義:框架中用到的枚舉,委托芽唇,常量顾画,接口):
UI窗體類型
UI窗體顯示類型
UI窗體透明類型
定義了一個(gè)UI窗體類型
BaseUIForm(基礎(chǔ)UI窗體腳本)
新實(shí)例一個(gè)UI窗體類型字段
屬性
顯示(虛方法)
隱藏(虛方法)
重新顯示(虛方法)
凍結(jié)(虛方法,窗體在其他窗體下面)
UIManager(UI管理類---負(fù)責(zé)UI窗體的加載匆笤、緩存研侣、以及各種窗體生命周期的操作)
字段---單例
UI窗體預(yù)設(shè)路徑
緩存所有的UI窗體
當(dāng)前顯示的UI窗體
定義一個(gè)“棧”炮捧,存儲(chǔ)當(dāng)前具有反向切換的窗體
UI根節(jié)點(diǎn)
UI窗體類型節(jié)點(diǎn)
UI管理腳本節(jié)點(diǎn)
初始化庶诡、加載UI窗體路徑到集合中
顯示UI窗體
初始化加載UI Canvas
根據(jù)UI窗體的名稱,加載到“所有UI窗體緩存集合”中
加載指定名稱的UI窗體(先根據(jù)名稱得到它的路徑)
把當(dāng)前窗體加載到“當(dāng)前窗體”集合中