LuaForUnity10:框架配置與AssetBundle

 

一、框架配置文件

ulua的框架配置文件:Scripts/ConstDefine/AppConst.cs

這裏面有特別多的公共常量信息(註釋也非常全),類似於總控制檯,目前只考慮一個比較重要的參數:ExampleMode,一般來講如果你用當前框架進行開發前,一般都會把裏面的NGUI等例子全部刪掉,在這之前需要將這個參數置爲 false,關閉之後,就可以把根目錄下的“Examples” 直接刪除

 

二、AssetBundle文件

AssetBundle:資源壓縮包,可以在運行時被加載,使用 AssetBundle+Lua 可以實現兩種熱更新框架方案 xLua 和 uLua,一般來講玩家也都是從服務器上下載 AssetBundle 文件解包即更新遊戲

AB打包命令:Game 菜單以及菜單下的子命令是通過 uLua\Editor\Packager.cs 編輯器擴展腳本實現的

如果 ExampleMode 爲 true,執行完畢 AB 打包命令後在 StreamingAssets 文件夾下就會出現3個後綴爲 ".assetbundle" 的 AB 包,這三個包就是 Examples 示例工程需要使用到的 AB 包,如下:

 

三、生成自己的AB包

設置你的資源,如下:

之後更新 uLua\Editor\Packager.cs 代碼:BuildPipeline.BuildAssetBundles 加載所有資源,其中第一個參數爲生成地址,默認就好了

/// <summary>
/// 生成綁定素材
/// </summary>
public static void BuildAssetResource(BuildTarget target, bool isWin) {
    if (AppConst.ExampleMode) {
        HandleExampleBundle(target);
    }
    else
    {
        BuildPipeline.BuildAssetBundles(Application.streamingAssetsPath, BuildAssetBundleOptions.None, target);
    }
    HandleLuaFile(isWin);
    AssetDatabase.Refresh();
}

搞定之後就可以 Build Windows Resource 了,如果 Wrap 文件報錯說明你的 Unity3D 版本太新,先暫時把Wrap文件清空,等生成 AB 資源後再重新生成 Wrap 文件

 

  • lua 文件夾:打包 AB 資源的時候,會將 lua 文件複製過來,在 ULua 熱更新環境下,lua 文件不會被打包成 AB 資源,而是直接從服務器端下載 .lua 原生文件到本地
  • files.txt 文件:熱更新清單文件,文件內包含 AB 包和 Lua 文件的路徑信息,以及用於校驗的 MD5 值,因爲 ULua 環境下,lua 腳本不會打包成 ab 包,也就意味着 lua 腳本文件的信息不會出現在目錄 manifest 文件中,但是我們熱更新的時候又要知道需要更新哪些 lua 文件,此時就需要 files.txt 熱更新清單文件

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章