小游戏分包

部分小游戏平台支持分包功能以便对资源、脚本和场景进行划分,包括微信小游戏、百度小游戏、小米快游戏、字节跳动小游戏、华为快游戏、OPPO 小游戏和 vivo 小游戏。

Cocos Creator 从 v2.4 开始支持 Asset Bundle,开发者可以将需要分包的内容划分成多个 Asset Bundle,这些 Asset Bundle 会被构建成小游戏的分包。在启动游戏时只会下载必要的主包,不会加载这些分包,而是由开发者在游戏过程中手动加载分包,从而有效降低游戏启动的时间。

配置方法

Asset Bundle 是以 文件夹 为单位进行配置的。当我们在 资源管理器 中选中一个文件夹时,属性检查器 中就会出现一个 配置为 Bundle 的选项,勾选后会出现如下图的配置项:

subpackage configuration

除了通用的 Asset Bundle 配置 之外,小游戏分包主要需要关注的设置包括:

  • 目标平台 设置成需要分包的小游戏平台,压缩类型 设置为 小游戏分包
  • 小游戏分包只能放在本地,不能配置为远程包,所以 配置为远程包 项为锁住状态,不可勾选。

配置完成后点击右上方的 打勾 按钮,这个文件夹就被配置成 Asset Bundle 了。

构建

在构建时,需要将 构建发布 面板中的 主包压缩类型 设置为 小游戏分包。具体说明可参考文档 Asset Bundle — 压缩类型

项目构建完成后,这个 Asset Bundle 文件夹会被打包到小游戏平台发布包目录下的 subpackages 文件夹中。该文件夹中包含的每个文件夹都是一个 Asset Bundle。

例如:将 Hello World 工程中的 assets/scene 文件夹在微信小游戏平台配置为 Asset Bundle,那么项目构建后将会在微信小游戏发布包目录下生成 subpackages/scene 文件夹。scene 文件夹就是一个 Asset Bundle。

subpackage

微信小游戏

在微信小游戏的构建中,Asset Bundle 的配置也会按照规则自动生成到微信小游戏发布包目录下的 game.json 配置文件中。

profile

注意:微信小游戏需要特定的版本才能支持分包功能。微信 6.6.7 客户端,2.1.0 及以上基础库开始支持,请更新至最新客户端版本,开发者工具请使用 1.02.1806120 及以上版本。更新了开发者工具后不要忘记修改开发者工具中的 详情 -> 本地设置 -> 调试基础库 为 2.1.0 及以上:

devtools setting

分包加载包大小的限制

目前微信小游戏分包大小有以下限制:

  • 整个微信小游戏所有分包大小不超过 20M
  • 单个分包不限制大小
  • 主包大小不能超过 4M

具体请参考 微信小游戏分包加载官方文档

vivo 小游戏

在 vivo 小游戏的构建中,Asset Bundle 的配置也会按照规则自动生成到 vivo 小游戏发布包 vivo-mini-game/src 目录下的 manifest.json 配置文件中。以配置 scene 文件夹为例:

profile

注意

  1. 快应用 & vivo 小游戏调试器1051 版本开始支持 vivo 小游戏分包加载。低于 1051 的版本虽然不支持分包加载,但是也做了兼容处理,如果使用了分包也不会影响游戏正常运行。具体可参考 vivo 分包加载-运行时兼容
  2. 与其他小游戏平台不同的是,项目构建后 vivo 小游戏的 Asset Bundle 文件夹是生成在发布包 vivo-mini-game 目录下的 src 目录。

    小游戏分包 - 图6

分包加载包的限制

目前 vivo 小游戏分包大小限制为 20M(主包限制 4M 及分包大小限制 16M)。

具体请参考 vivo 小游戏官方文档 — 分包加载