KSFrameworkUnity3D 開發(fā)框架/工具集
KEngine + SLua+ Framework = KSFramework
KSFramework是一個整合KEngine、SLua的Unity 5開發(fā)框架,并為程序、美術(shù)、策劃、運營提供輔助工具集。
熱重載是KSFramework的開發(fā)重點——在不重啟游戲的前提下,重載代碼、配置表可立刻看到修改效果,最大限度的提升開發(fā)、調(diào)試的速度,方便運營階段熱更新。
結(jié)構(gòu)組成:
功能特性
資源模塊
Unity 5中一鍵打包Asset Bundle
AssetBundle加載器,加載時自動處理依賴關(guān)系
資源路徑約定,含熱更新資源機制
手動的、引用計數(shù)的資源釋放策略
資源運行時重載(減引用計數(shù))
配置表模塊
自動編譯Excel,支持在表中添加注釋
Excel表頭,可設(shè)置數(shù)據(jù)類型(如int, array的聲明)
自動生成配置表讀取代碼
支持惰式加載,無初始化的時間消耗
支持熱重載,運行時修改配置表無需重啟
UI模塊
約定優(yōu)于配置式的UI框架
快速導(dǎo)出當(dāng)前編輯的UI
支持熱重載,運行時修改UI腳本無需重啟
腳本模塊
路徑約定,通過import函數(shù)進(jìn)行加載
緩存機制配合import函數(shù),可實現(xiàn)所有腳本的熱重載
Lua新增using函數(shù)類似于C#中的using,暴露使用table中的屬性為全局使用
多語言模塊
基于配置表模塊
約定好多語言字符串的機制
多語言字符串收集器
Unity編輯器強化
編輯代碼后,返回正在運行的游戲,強制停到正在運行的游戲,避免崩潰的出現(xiàn)
封裝Unity編輯器的各種事件,如編譯前、播放前、暫停時等
工程建議
建議創(chuàng)建兩個Unity工程:code和art,一個用于代碼編輯,一個用于美術(shù)編輯并導(dǎo)出AssetBundle。 這樣code的Unity工程,只帶了代碼和AssetBundle,沒有資源加載的緩慢過程,讓Unity開發(fā)更暢快;同時也對代碼部分做了保密,防止其他人員外泄。
鍵盤快捷鍵
Ctrl+Alt+E: 在編輯UI場景時,導(dǎo)出UI成AssetBundle
Ctrl+Alt+R: 在運行時,熱重載所有LuaUIController
Ctrl+Alt+Shift+R: 在運行時,熱重載所有LuaUIController,并且把所有打開狀態(tài)UI關(guān)閉后重新開啟
Ctrl+Alt+I: 在編輯器,打開Game.unity主運行場景
Ctrl+Alt+O: 在編輯器,打開Ctrl+Alt+I前的一個場景
KEngine和KSFramework
定位不一樣
KEngine:為了減低Unity 4.x中AssetBundle的加載、打包復(fù)雜度;
KSFramework:一站式的開發(fā)框架,可以開箱即用,整合KEngine和SLua。只支持Unity 5。
提供的模塊不同
KEngine: 提供基礎(chǔ)的資源加載(ResourceModule)功能,并以之為基礎(chǔ),增加配置表(SettingModule)、UI模塊(UIModule)這兩個核心模塊;另外還有針對Unity 4.x的資源依賴打包模塊。
KSFramework:基于KEngine的資源、UI、配置表模塊,實現(xiàn)更直接的、面向具體項目的常用功能模塊,并搭配SLua。
