Unity 热更新之AB 包 简述
了解AB包是什么
特定于平台的资产压缩包,有点类似压缩文件
资产包括:模型、贴图、预设体、音效、材质球等等
了解AB包有什么作用
相对Resources下的资源AB包更好管理资源
1.减小包体大小
- 压缩资源(节约硬盘空间)
- 减少初始包大小(缩小首包大小,进入游戏后再下载)
2.热更新
- 资源热更新(添加资源)
- 脚本热更新(更新Lua脚本)
生成AB包资源文件
1. Unity编辑器开发,自定义打包工具
这个没做过所以略
2. 官方提供好的打包工具:Asset Bundle Browser
对于高版本unity 中,已经不能通过包管理器下载(原因:高版本Unity 用Addressables 功能封装了AB包功能)
解决方法,个人是从github 上导入unity包中的,或者也可以将工程拖入unity 的 Editor文件夹中,这个是文件夹是需要自己创建的。
github 文件链接跳转 https://github.com/Unity-Technologies/AssetBundles-Browser
3.AssetBundleBrowser重要参数相关
4.AB包生成的文件
其中除了自定义的AB外,而外生成了一个主包,赋值存放AB 包的依赖关系
主包名由路径的最后名字为标准
使用AB包资源文件
Unity 提供的API
AB包同步加载
//同步加载
//AB包不能重复加载否则会报错
//加载AB包资源 用ab变成存储 文件夹里面的要加载的AB包路径
AssetBundle ab= AssetBundle.LoadFromFile("路径");
// 获得AB 包里面的 预制体资源
GameObject obj =ab.LoadAsset<GameObject>("资源名");
// 生成预制体
Instantiate(obj)
AB包异步加载
//异步加载
//加载AB包资源 用ab变成存储 文件夹里面的要加载的AB包路径
//AB包不能重复加载否则会报错
//一般用携程写,因为需要语法糖yile 来判断是否加载完成 再进行下一步操作
AssetBundleCreateRequest ab= AssetBundle.LoadFromFileAsync("路径");
// 获得AB 包里面的 预制体资源
AssetBundleRequest obj = ab.assetBundle.LoadAssetAsync<GameObject>("包里的资源名");
// 生成预制体
Instantiate(obj.asset as GameObject);
卸载全部AB包
//ture 卸载所有加载的AB以及场景上所有引用的资源会丢失 false 只卸载AB包
// 例如 某UI或模型使用了 AB里的资源贴图 卸载后 会出现 无图片 模型缺少贴图
AssetBundle.UnloadAllAssetBundles(False);
卸载单个AB包
//ture 卸载所有加载的AB以及场景上所有引用的资源会丢失 false 只卸载AB包
// 例如 某UI或模型使用了 AB里的资源贴图 卸载后 会出现 无图片 模型缺少贴图
AB包对象.Unload(false);
//类如 ab.unload(false);
AssetBundelManifest(AB包依赖)
/// 加载总包
AssetBundle AbMain = AssetBundle.LoadFromFile("路径"+ "/总包名");
//获得总包文件信息
//字符串里的"AssetBundleManifest" 是固定的
AssetBundleManifest assetBundleManifest = AbMain.LoadAsset<AssetBundleManifest>("AssetBundleManifest");
//通过AB包名获得所有依赖包名
string[] s = assetBundleManifest.GetAllDependencies("需要查询的包");
AB包资源加载管理器
AB包文件
里面存放的是资源文件
Manifest文件
- AB包文件信息
- 资源信息,依赖关系,版本信息等等
关键AB包(和目录名一样的包)
- 主包
- AB包依赖关键信息
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)