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包

设置你的资源,如下:

扫描二维码关注公众号,回复: 11201792 查看本文章

之后更新 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 热更新清单文件
原创文章 1134 获赞 1439 访问量 61万+

猜你喜欢

转载自blog.csdn.net/Jaihk662/article/details/103316217