目录
AB包是什么
AB包的作用
打包说明
1.勾选标记资源
2.官方打包工具AssetBundle Browser
面板参数讲解
3.打包后生成的文件
AB包是什么
- 特定于平台的资产压缩包,有点类似压缩文件
- 能够压缩的资产包括:模型、贴图、预设体、音效、材质球等等
AB包的作用
- 减小安装包体积 —— 将资源按需拆分打包,避免所有资源都打进主包,减少初始安装包的大小;
- 动态的按需加载与卸载,减少运行时的内存 —— 通过AssetBundle可以在运行时从本地或服务器加载资源,并在不用时卸载释放内存;
- 热更新支持 —— 不需要重新打包整个应用,只需替换或下载新的AB包即可实现资源和脚本的更新
打包说明
1.勾选标记资源
选中资源,在它的Inspector窗口底部,可以将当前资源加入某个标签或新建一个标签,标签的名字就是AB包的名字,这里的包名是强制小写的


2.官方打包工具AssetBundle Browser
AB包打包工具可以通过编辑器扩展自己写一个,调用AB包相关的API即可。在这里我直接使用官方的省事;
面板参数讲解
-
Configure
显示当前所有的标签和对应有哪些资源,如图,model包中包含一个Cube资源,一目了然

-
Build

- BuildTarget:目标平台
- Output Path:目标输出路径
- Clear Folders:是否清空文件夹 重新打包
- Copy To StreamingAssets:是否拷贝到StreamingAssets
- Compression
- NoCompression
- LZMA
- LZ4
- 压缩,相对LZMA大一点点
- 建议使用,用什么解压什么,只解压你所需要的,内存占用低
- ETI
- FR
- 重新打包时需要重新构建包,和ClearFolders不同,它不会删除不再存在的包
- ITTC
- Append Hash
- SM
- 严格模式,如果打包时报错了,则打包直接失败无法成功
- DRB
-
Inspect
主要是可视化的查看AB包中的详细信息

3.打包后生成的文件
跳转到打包后的输出路径,查看文件夹下的内容

- model:这是AB包文件,也就是我们刚刚定义的AB包,包名字就叫model
- ios:这个和输出路径的同名文件,是AB包的主包,它是AssetBundle主清单文件,包含了所有被打包的 AssetBundle 名称,以及它们之间的依赖关系
- .manifest:每个AB包都会生成一个.manifest文件,用于描述对应的AB包的信息,主要记录,可以直接双击打开查看:
主要包含以下几个部分:
- 版本校验
- 包含 Hash 值和 CRC 校验码,用于比对更新和校验下载是否完整
- ManifestFileVersion:说明 manifest 文件的版本号;
- CRC:资源包的 校验码(循环冗余校验),运行时可用来检测资源是否损坏;
- 哈希相关:
- AssetFileHash:AB 文件整体的哈希,用于版本对比和一致性校验;
- TypeTreeHash:类型树(TypeTree)的哈希,确保序列化结构一致,避免不同 Unity 版本序列化格式不兼容;
- IncrementalBuildHash:增量构建时使用的哈希,判断是否需要重新打包
- HashAppended:标志位,说明是否在 AB 包文件结尾附加了 Hash 信息(一般是 0 或 1);
- 类型信息
- ClassTypes:列出 AB 包里包含的 Unity 对象类型,以 Class ID 表示
- 比如:Class: 1 → GameObject;Class: 4 → Transform;Class: 33 → MeshRenderer
- SerializeReferenceClassIdentifiers:用于记录 SerializeReference 序列化的自定义类标识符(如果没有就为空数组)
- 资源内容
- 资源依赖
本文作者:xuxuxuJS
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA
许可协议。转载请注明出处!