1.SimpleFramework框架配置文件數組
(1)AppConst 文件服務器
在AppConst.cs文件中配置了不少項目開發過程當中,須要使用到的「公共常量信息」。腳本內的常量都有中文備註。所在位置是:Scripts/ConstDefine/AppConst.cs。框架
字段用「const」關鍵字修飾,方法用「static」關鍵字修飾,該腳本內全部的字段,方法,在外部腳本均可以使用「類名.xxxx」進行訪問使用。編輯器
做用和價值:lua
該腳本的做用相似於「總控制檯」,經過改變該腳本內的信息,就能夠改變項目的一些核心狀態。spa
(2)AppConst 文件修改遊戲
ExampleMode:在正式項目開發時,該常量須要修改爲false,就是關閉示例工程,關閉以後,就能夠把根目錄下的「Examples」刪除。事件
2.AssetBundle 文件ip
(1)AB 打包命令資源
Game 菜單以及菜單下的子命令是經過uLua\Editor\Packager.cs 編輯器擴展腳本實現的。在咱們執行完畢AB 打包命令後,在StreamingAssets 文件夾下,會出現3個後爲「.assetbundle」的AB 包,這三個包就是Examples 示例工程須要使用到的AB 包。將AppConst 腳本中的ExampleMode 修改成false,就不會再生成示例工程的AB 資源。
(2)生成本身的AB 包
將項目資源中的某個預製體設置Asset Labels 信息,而後使用Game 菜單下的命令打包成AB 資源。會發現咱們本身的AssetBundle 文件沒法打包成功。這時候咱們就須要分析Packager.cs 編輯器擴展腳本文件。
分析結果以下:
①示例工程中的資源並無手動指定AssetLabels 信息,而是在編輯器擴展腳本內,使用代碼的方式,動態指定AssetLabels 信息,而後一個資源一個資源單獨打包成AB 包;
②若是想實現能打包咱們本身的AssetBundle 資源,須要對該腳本進行修改。須要對AppConst.ExampleMode 爲假的狀況進行代碼處理:讓腳本能夠打包項目中全部指定了AssetLabels 信息的遊戲物體爲AB 包。
在打包AssetBundle 資源時,可能出現LuaWrap 文件夾下的腳本文件報錯的狀況,解決方法步驟以下:先清空LuaWrap 文件,而後生成AB 資源,最後再從新生成LuaWrap 文件。
3.Lua 和files 文件
(1)Lua 文件夾
StreamingAssets 下的lua 文件夾內的代碼在打包AB 資源的時候,一塊複製過來的。在ULua 熱更新環境下,lua 文件不會被打包成AB 資源,而是直接從服務器端下載.lua 原生文件到本地。
(2)files.txt 文件
在StreamingAssets 文件夾下有一個叫作files.txt 的文本文件,這個文件叫作:熱更新清單文件。做用相似於AssetBundle 原生的「目錄manifest 文件」。
files 文件內包含AB 包和Lua 文件的路徑信息,以及用於校驗的MD5 值。由於ULua 環境下,lua 腳本不會打包成ab 包,也就意味着lua 腳本文件的信息不會出如今「目錄manifest 文件」中,可是咱們熱更新的時候又須要知道更新哪些lua 文件,因此說出現了這個files.txt 熱更新清單文件。
4.Lua 邏輯腳本
SimpleFramework 框架使用的是MVC 代碼結構,View 文件夾:存放的是UI 功能面板的視圖相關腳本;Controller 文件夾:存放的是UI 功能面板控制器相關腳本。
(1)Panel 界面腳本
①PromptPanel.lua :「主面板」的界面腳本.
②MessagePanel.lua :「彈出信息面板」的界面腳本.
總結:
①這兩個腳本都是和UI 界面相關的,自己沒有實際的代碼邏輯,都是查找當前UI 面板的一些遊戲物體或者組件,而且存儲它們的引用。
②能夠把這兩個腳本當成「模板」,咱們後續開發本身的項目的時候,能夠參照這兩個腳本的代碼格式。
(2)Ctrl 控制器腳本
①MessageCtrl.lua :「彈出信息面板」的界面邏輯功能實現腳本.
②PromptCtrl.lua:「主面板」的界面邏輯功能實現腳本.
總結:
①這兩個Ctrl 腳本是UI界面的邏輯處理腳本,該腳本主要用於實例化遊戲物體,處理遊戲物體自己的邏輯,並對遊戲物體內的按鈕綁定相關的事件處理方法。
②在Ctrl 腳本中會訪問使用Panel 腳本中查找到的遊戲物體引用。
5.框架核心腳本介紹
(1)C#核心腳本
①框架入口[GlobalGenerator.cs]:在場景中有一個空物體,該物體上掛載了一個「GlobalGenerator.cs」腳本。該腳本字面意思理解是「全局生成器」,它是ULua 熱更新框架的入口啓動腳本。做用相似於VS 控制檯項目中的入口腳本Program.cs。
②啓動命令[StartUpCommand.cs]:在ULua 框架啓動後,會執行到「StartUpCommand.cs」腳本。這個腳本的做用是給場景內的遊戲物體添加必備的管理器腳本。
③ULua 框架運行後,會自動給「GameManager 遊戲物體」添加7 個管理器腳本,這7 個管理器腳本內,存放了大量的「可複用代碼」。
④遊戲管理器[GameManager.cs]:這7 個管理器腳本中,代碼量最大的是GameManager.cs 腳本。在開發過程當中該腳本也是咱們最常操做的一個腳本。熱更新框架中核心的「資源熱更新下載功能」就是在該腳本內實現的。OnResourceInited()方法:C#與Lua 交互的入口。
(2)Lua 核心腳本
①遊戲管理器[GameManager.lua]:C#版本的GameManger.cs 中會加載Lua 版的GameManger.lua 腳本。
LuaScriptPanel():返回一個名稱數組.
OnInitOK():加載完View 資源後的回調方法.
②控制器管理器[CtrlManager.lua]:用於管理Lua 環境中全部的Ctrl 類型的腳本.只須要根據開發需求引入對應的Ctrl 文件,而且往Init()方法中添加數據便可。
③定義[define.lua]:存放Lua 環境中的一些定義,只須要根據開發需求往CtrlName 表中添加數據便可。