1、引言
一般來說:我們做精美的界面玷或,肯定是按部就班的拖UI控件,不停的引用來調(diào)用制作儡首。但是隨著我們掌握的熟練度,會發(fā)現(xiàn)一些類似的界面完全可以封裝起來偏友,而且通過進(jìn)一步優(yōu)化蔬胯,就成為我們熟悉的框架,那么什么是UI框架位他?UI框架用來做什么氛濒?
2产场、場景假設(shè)
首先我們假設(shè)有兩個面板,每個面板都有一個按鈕
我們通過按鈕的點擊來控制另一個畫面的顯示舞竿。
Unity官方給出了很不錯的建議京景。
但是我們需要掛在兩個腳本:
腳本1:掛在登錄面板上(這兩種方法都可以)
腳本2:掛在注冊面板上
1-優(yōu)點:
這樣做,就完美達(dá)到一個控制另一個骗奖,交互顯示的需求确徙,而且腳本也中也比較干爽。
注:方法二經(jīng)過測試执桌,對程序效率有明顯的提升鄙皇,而且邏輯更精確。
1-問題:
假如有很多個面板仰挣,那么我們腳本豈不是一大堆育苟,每一個有聯(lián)系的面板中都需要去進(jìn)行修改,寫一大堆沒有營養(yǎng)的代碼快線椎木。
2违柏、解決問題
用上面的方式,面板很少的情況下還可以香椎,但是假如有很多面板呢漱竖?
而且我們的界面不可能全部扔進(jìn)場景中,我們需要熱加載畜伐,或者動態(tài)加載馍惹。
那么我們就需要UIManager來解決這些遇到的問題。
將這個腳本掛在攝像機(jī)上玛界,就可以控制兩個面板的開啟與關(guān)閉了
當(dāng)然要注冊一下面板:
2-優(yōu)點
這樣做万矾,確實也可以,腳本變成一個慎框。
3-問題
我們還是需要一一指定相應(yīng)的面板來進(jìn)行控制良狈,還是麻煩!
3笨枯、大招
3-1薪丁、將面板保存為一個個預(yù)制物,而通過Resources加載(動態(tài)加載)
3-2馅精、在我們的UI管理類中:提供方法來加載控制
注:這里面的問題严嗜,下面3-6、會提出解決辦法
3-3洲敢、因為這個管理者是全局唯一的漫玄,所以采用單例模式
最終效果:
3-4、因為測試階段压彭,所以還是需要之前的面板腳本
而在兩個面板的腳本中
Login
Registe
3-5睦优、我們掛在相應(yīng)的腳本渗常,就可以發(fā)現(xiàn)成功了
3-6、解決命名空間的問題
首先我們添加命名空間刨秆,框架一般都是我們自己的凳谦,隨時可以抽走忆畅,更換衡未。所以我們都會加自己的命名空間!
而這個時候家凯,我們通過預(yù)制物加載缓醋,發(fā)現(xiàn)就找不到物體了
打印輸出:
既然有了這個討厭的命名空間,那就強(qiáng)拆
結(jié)果一看绊诲,完美送粱!