遊戲UI框架設計(一) : 架構設計理論篇

遊戲UI框架設計(一)

---架構設計理論篇

 

  前幾天(2017年2月)看到一篇文章,國內王健林、馬雲等大咖們看好的未來十大最有“錢途”產業中,排名第一的就是“泛娛樂”。 所以我們發現最近幾年無論是BAT企業還是萬達等,都紛紛投資遊戲、電影、動漫等泛娛樂產業。

  隨着人們物質生活的不斷提高,遊戲(包含端遊/手遊/VR/AR等遊戲形式)產業只會越來越繁榮。但是問題來了,我們一線的遊戲研發人員面對越來越複雜與規模龐大的遊戲開發需求(策劃文稿),越來越多的開發人員就更加重視與強調優良開發框架的使用,以期進一步增強遊戲開發效率與代碼質量!

   本篇就基於Unity遊戲引擎UGUI爲基礎,對UI界面遊戲架構做一些有益探索與研究。首先我們來研究一下大型遊戲項目中,沒有UI框架容易導致與出現的問題:

問題1;

   以ARPG爲例,多個場景會反覆出現相同的“UI窗體”,造成多個場景中反覆加載相同的UI窗體。

解決思路:

    “UI框架” 需要緩存項目(例遊戲項目)中常用的“UI窗體"。

 

問題2:

  開發商業複雜項目時,各個UI(UI腳本)之間傳值,容易出現“緊耦合”的情況,容易導致項目的“可複用性”降低。

解決思路:

    各個UI的生成、銷燬、切換,都是通過框架(Manger)實現,各個UI之間不直接聯繫(傳值),開發類似“消息傳遞中心”的機制來負責所有“UI窗體”或者UI腳本之間的傳值。

 

問題3:

  卡牌、RPG等遊戲類型項目,很多情況下會出現多個“彈出窗體” 疊加的現象,開發人員需要“手工”維護窗體中間的層級關係。

解決方案:

    設計UI框架系統,使用“棧”的數據結構,保存與控制當前所有需要顯示的“UI窗體”的層級關係。

 

問題4:

  商業項目中多個“UI窗體” 疊加出現時,保持“UI窗體”的“模態顯示”非常重要(即: 彈出子窗口時,不允許玩家操作父窗體),否則容易出現各種誤操作。

解決方案:

   設計的框架本身,需要對當前顯示的窗體做“遮擋處理”,即:不允許用戶繞過當前“UI窗體”直接操作底層窗體,或者誤操作點擊項目中的3D遊戲對象等。

 

  當然還有很多其他的問題,諸如:語言的國際化、“窗體預設”自動加載的管理等。但是設計UI框架一個總的核心原則是:儘量讓框架本身完成與具體業務無關的事務性工作,讓開發人員只需要專注遊戲業務邏輯的開發本身即可。(這個原則同樣適用於其他框架的設計中)

  爲了解決以上商業開發遇到的各種問題,因此筆者設計如下UI窗體架構的“功能設計圖”:

相應的類圖設計如下:

 爲了更好的描述整個框架系統,筆者對整個框架分如下六個部分作詳細描述:

  1. 最簡版本設計
  2. 窗體的層級管理
  3. 模態窗體管理
  4. 配置管理與應用
  5. 消息傳遞中心
  6. 資源國際化技術
發佈了6 篇原創文章 · 獲贊 11 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章