有通用的框架,可加快開發進度和提高代碼質量,讓新人也能很好完成任務;
2、UI的定義:人機交互,直接影響玩家體驗,所以必須做得卓越;
它是數據的可視化表現,採用“基於數據的編程”;
UI卓越=代碼好+數據表現正確+界面美觀+操作感好+操作流暢;
內容:管理所有View:GUIManager類+BasePanel類;
每個獨立功能模塊,推薦使用MVC架構;
UI通用工廠:界面、組件、功能接口;
UI性能優化;
歷史UI棧、UI分層管理、適配、UI統一規範;
3、數據的管理
三種數據:配表、網絡協議數據、臨時數據(界面、或模塊內產生的);
作爲MVC架構的一員,通常用類來封裝;
UI只是數據的可視化而已,一切UI操作都圍繞它們進行;
4、(一)統一管理所有View:GUIManager類+BasePanel類
GUIManager類是個單例,它有大量成員變量,可記錄一些狀態信息(使用“基於狀態機”的編程);每個View的行爲都會影響到BasePanel類,而在BasePanel內部調用GUIManager的接口,
這樣就可以通過GUIManager記錄所有UI狀態並管理它們,例如curPanel_id, lastPanel_id等;
5、(二)UI工具類、工具函數封裝
1)應該有guiToos目錄,封裝了一些類、函數,方便快速代碼迭代
2)內容:適配、UI分層
6、(三)MVC架構
M:類封裝,該類定義了數據結構、數據的處理(增刪查改);
類的子對象保存到Controller裏;
臨時數據可直接保存在對應View類裏;
V:每個Panel封裝爲一個類,管理該界面的一切邏輯;
建議封裝一個BasePanel類,所有界面都繼承它
C:對內管理整個模塊運作,有M、V類對象做成員變量;
對外提供操作接口,有一系列public成員函數
7、View的封裝
1)有BasePanel類,所有界面View都繼承它,它有兩個作用:封裝一些通用功能、接口,例如:資源加載、顯示、銷燬;
便於管理所有UI;2)每個View類都有一套通用模板,可加快開發效率
8、View類通用模板(規則)1)使用“基於數據”的編程
2)三大操作:創建界面、數據顯示、數據操作3)創建界面createPanel
<1>只創建靜態界面,不賦值,與數據無關;
<2>使用“界面佈局法”,例如左右結構-createPanel(){createLeftPanel(); createRightPanel();}
<3>單例工廠類ComponentFactory創建各種組件:因爲組件就10幾種(按鈕、label、滾動條等)
<4>大量同類型組件的處理:例如揹包上各種格子,沒必要每個都創建;第一個GO對象:在createPanel()裏創建
其它對象可通過實例化創建:GO2=GameObject.Instantial(GO)實例化的地方:若數量少且與數據關係不大 —— 在createPanel(),例如5顆星星;
否則,在refreshPanel(),例如揹包物品4)數據顯示refreshPanel
<1>兩大操作:動態組件的賦值 + 動態創建(針對那些根據數據情況而創建的原件)
<2>顯示更新分兩種:全局更新、局部更新(節省性能)
5)數據操作:玩家點擊事件的處理
<1>兩大操作:數據更新、刷新面板refreshPanel
6)代碼模板可參考博客“View類通用模板”