unity热更新--AssetBundle基础

unity的热更新基础:AssetBundle
unity的热更新基础:lua语法
unity的热更新的解决方案:xlua tolua

AssetBundle
1:是什么?---------------------------------特定于平台的资产压缩包,包括:模型、贴图、预设体、音效、材质球等
2:有什么用?

①:相对于Resouse下的资源,AB包中更好管理
Resources在打包是只能定死,不能修改
AB包的存储位置可自定义,压缩方式可自定义,后期可以动态更新。
②:减小包的大小:压缩资源 减少初始包的大小
③:热更新:资源热更新,脚本热更新
热更新的基本规则:
①:客户端带有很少的默认资源,资源对比文件
②:从服务器管获取资源服务器地址
③:通过资源对比文件,检测那些文件需要更新,那些需要下载。
在这里插入图片描述

3:如何生成?
在这里插入图片描述在这里插入图片描述
在这里插入图片描述在这里插入图片描述

其中不带后缀的是资源信息,带后缀的是配置信息。
关于其中的Build
BuildTarget:目标平台
Output PAthena:目标路径
Clear Folders:是否清空文件夹,重新打包
Cope To StreamingAssets:是否拷贝到StreamingAssets
Compression:压缩 —①:NoCompression:不压缩,解压快,包较大,不推荐使用
**②:LZMA:压缩最小,解压慢。用一个资源要解压所有。 **
③:LZ4:压缩相对LZMA大一些,建议使用。用什么解压什么,内存占用小
ETI:在资源包中,不包含资源的类型信息
FR:在重新打包是需要重新构建包,和ClearFodles不同是,FR不会删除不在存在的包
ITTC:增量构建检查时,忽略类型数的更改
Append Hash:将文件哈希值附加到资源包名上
SM:严格模式,如果打包时报错了,则打包直接失败无法成功
DRB:运行时构建
4:如何使用?
在这里插入图片描述同一个AB包不能被加载两次,不然会报错
异步加载AB包
在这里插入图片描述把所有AB包卸载,并且把通过AB包加载的场景内的资源也全部卸载掉!!!
AssetBundle.UnloadAllAssetBundles(true);
只把AB包卸载
AssetBundle.UnloadAllAssetBundles(true);

在这里插入图片描述上图是只卸载AB包,不卸载AB包相关资源。

依赖
在这里插入图片描述在这里插入图片描述

5:AB包资源加载器。
异步加载,通过委托将资源传递给外部。外部来使用
https://www.bilibili.com/video/BV1LD4y1m7kF?p=5
b站唐老狮的AB包资源管理器

猜你喜欢

转载自blog.csdn.net/Allure_Lo/article/details/113936381