Asset Bundle 介绍:
https://docs.cocos.com/creator/manual/zh/asset-manager/bundle.html
配置和加载 Asset Bundle:
https://docs.cocos.com/creator/manual/zh/scripting/asset-bundle.html
本文中 Asset Bundle 简称AB包
外部资源 = 不在本AB包目录内的资源(包括内置AB包和其他AB包)
// AB包的定义 //AB包作为资源模块化工具,允许开发者按照项目需求将贴图、脚本、场景等资源划分在多个AB包中,然后在游戏运行过程中,按照需求去加载不同的AB包,以减少启动时需要加载的资源数量,从而减少首次下载和加载游戏时所需的时间,同时可以减少内存占用AB包可以按需求随意放置,比如可以放在远程服务器、本地、或者小游戏平台的分包,也可以跨项目复用,用于加载子项目中的AB包
// 配置AB包 //AB包是以 文件夹 为单位进行配置的,并且 不支持嵌套, 不允许同名,即使是在不同的文件夹下,也不允许同名
配置方法:
① 将项目中的场景、资源、代码等内容按照需求划分到不同的文件夹
② 单击该文件夹,属性检查器 中就会出现一个 配置为 Bundle 的选项,勾选后会出现如下图的配置项
配置项 | 功能说明 |
Bundle 名称 | AB包构建后的名称,默认会使用这个文件夹的名字,可根据需要修改 |
Bundle 优先级 | Creator 开放了 10 个可供配置的优先级,构建时将会按照优先级 从大到小 的顺序对AB包依次进行构建 |
目标平台 | 不同平台可使用不同的配置,构建时将根据对应平台的设置来构建AB包 |
压缩类型 | 决定AB包最后的输出形式,包括 默认、无压缩、合并所有 JSON、小游戏分包、Zip 五种压缩类型 |
配置为远程包 | 是否将AB包配置为远程包,不支持 Web 平台 若勾选了该项,则AB包在构建后会被放到 remote 文件夹,你需要将整个 remote 文件夹放到远程服务器上 |
配置完成后点击右上方的 应用 按钮,这个文件夹就被配置为AB包了,然后在 构建发布 面板选择对应的平台进行构建
注意:
① Creator 有 4 个 内置AB包,包括 resources、internal、main、start-scene,在设置 Bundle 名称 时请不要使用这四个名称
② 小游戏分包只能放在本地,不能配置为远程包,所以当 压缩类型 设置为 小游戏分包 时,配置为远程包 项不可勾选
③ Zip 压缩类型主要是为了降低网络请求数量,如果放在本地,不用网络请求,则没什么必要,所以要求与 配置为远程包 搭配使用
// 内置AB包 //构建后,项目中所有的资源都会被分类放到AB包中, 其中自定义AB包中的资源放到对应的AB包中,其他的资源则会被分类放到 4 个内置AB包中
内置AB包 | 功能说明 | 优先级 |
internal | 存放所有内置资源以及其依赖资源 | 11 |
main | 存放所有在 构建发布 面板的 参与构建场景 中勾选的场景以及其依赖资源 | 7 |
resources | 存放 resources 目录下的所有资源以及其依赖资源 | 8 |
start-scene | 如果在 构建发布 面板中勾选了 初始场景分包,则首场景将会被构建到 start-scene 中 | 9 |
注意:
start-scene 目前仅支持小游戏平台,如果在 构建发布 面板中勾选 初始场景分包,则首场景会被放到内置AB包的 start-scene 中,从而实现分离首场景
// 构建AB包 //在构建时,配置为AB包的 文件夹中的资源(包含场景、代码和其他资源)以及 文件夹外的相关依赖资源 都会被合并到同一个AB包中
构建完成后,该文件夹会被打包到对应平台发布包目录下的 assets 文件夹中
但有以下两种特殊情况:
① 配置AB包时,若勾选了 配置为远程包,则这个文件夹会被打包到对应