UH1L1——AB包资源打包
UH1L1——AB包资源打包
本章代码关键字
1 | BuildPipeline.BuildAssetBundles() // 调用此方法时,Unity会自动把所有设置了AssetBundle名字的资源打包为AssetBundle |
AB包资源打包工具选择
- 使用 Unity 编辑器开发的自定义打包工具
- 官方提供好的打包工具:AssetBundles-Browser-master
关于高版本Unity导入AssetBundles-Browser-master
对于高版本Unity中,AssetBundles-Browser 已经不能通过包管理器进行下载(发现包管理器中没有对应工具不用着急)
因为:高版本 Unity 用 Addressables 功能封装了AB包功能
你仍然可以在资料区下载 AssetBundles-Browser-master 包文件导入你的工程中
或者从 github 上去获取该脚本:Releases · Unity-Technologies/AssetBundles-Browser (github.com),下载最晚发布的源代码即可
若导入后报错,只需删除导入内容中的示例文件夹(Test 文件夹)即可
打开AssetBundles-Browser窗口
点击工具栏:Window ——> AssetBundle Browser
如何将资源与AB包关联起来
选择需要关联的资源,在其 Inspector 窗口底部的 AssetBundle 处,选择需要打包到的 AB 包或者新建一个 AB 包
后面的选项是拓展名,我们现在不需要去修改它
之后打开 AssetBundles-Browser 窗口就可以在 Configure(配置)看到这个AB包了
要注意,AssetBundles 不能打包 C# 脚本文件,即使打包的预设体挂载了 C# 脚本,在 Inspector 窗口上可以看见,
那也不是 C# 脚本文件本身,因为 Unity 是使用 反射机制 来调用 C# 脚本的,预制体文件实际存储的是关联的脚本的 ID 与数据罢了
通过 API 构建 AssetBundles 包
BuildPipeline.BuildAssetBundles()
方法是构建所有 AB 包的方法,
调用此方法时,Unity 会自动把所有设置了 AssetBundle 的资源打包为 AssetBundle,
被打包的资源所属的 AssetBundle 名字和资源在 Inspector 窗口底部的设置的 AssetBundle 名字一致
- 参数一:打包路径
- 参数二:
BuildAssetBundleOptions
枚举,即 AssetBundle 压缩格式 - 参数三:
BuildTarget
枚举,即 AssetBundle 目标构建平台 - 返回值:所有构建出来的 AssetBundle 清单
假设要打包如下的资源,它们的 AssetBundle 分别设置为 ab1.bundle
,ab2.bundle
,ab3.bundle
,
并打包到项目文件夹下和 Assets 文件夹同级的 AssetBundle 文件夹内
1 | using System.IO; |
点击 Tools/BuildAssetBundle
选项后,即可在打包路径内看到构建出来的 AB 包:
AssetBundlesBrowser 构建参数相关
AssetBundles-Browser 是 Unity 官方提供的 AB 包打包工具,它封装了 BuildPipeline
等构建相关的接口
-
build(构建页签)
-
BuildTarget:目标平台
-
Output Path:目标输出路径
-
Clear Folders:是否清空文件夹,重新打包
-
Copy To StreamingAssets:是否拷贝到StreamingAssets
-
Compression 压缩方式
-
NoCompression - 不压缩,解压快,包较大,不推荐
-
LZMA - 压缩最小,解压慢
缺点:用一个资源,要解压所有文件
-
LZ4 - 压缩,相对LZMA大一点点
建议使用,用什么解压什么,内存占用低
-
-
Exclude Type Information - 排除类型信息
在资源包中,不包含资源的类型信息
-
Force Rebuild - 强制重新构建
重新打包时需要重新构建包
和Clear Folders不同,它不会删除不再存在的包 -
Ignore Type Tree Changes - 忽略类型树的改变
- 增量构建检查时,忽略类型数的更改
-
Append Hash - 将文件哈希值附加到资源包名上
-
Strict Mode - 严格模式
如果打包时报错了,则打包直接失败无法成功
-
Dry Run Build - 运行时构建
-
AB 包打包到的位置与结构
除了 Build 页签中选择 Copy To StreamingAssets 后会复制到 StreamingAssets 文件夹的AB包
真正的 AB 包文件会打包到工程文件夹下的 AssetBundles 文件夹下
我们将 model 包打包到 AssetBundles/PC 文件夹下,在这个文件夹下可以看到如下文件
-
AB 包生成的文件
-
AB 包文件 - 资源文件
-
manifest 文件 - AB 包文件信息
当加载时,提供了关键信息
资源信息,依赖关系,版本信息等等 -
关键 AB 包(和目录名一样的包)- 主包
AB包依赖关键信息
-
其中 PC 这个文件并不是我们手动打的 AB 包,而是 主包,这个文件是原来存储 AB 包之间相互依赖关系的文件
而 model 文件是真正的我们打包出去的 AB 包
除了这些没有后缀名的文件,还有一些后缀为 .manifest
的文件,它们是AB包的配置文件,包括打包了哪些文件等一系列信息
AssetBundlesBrowser 的查看 AB 包相关
将存储 AB 包的文件夹或文件添加进去,我们可以看到 AB 包的一系列信息