Asset Bundle、分包和远程资源
Asset Bundle 是 Creator 组织一组资源与依赖的方式;微信分包是平台的包分发机制;远程 Bundle 是从配置的远端位置加载内容。它们相关,但不能互相当作同义词。
从玩家等待时间倒推划分
启动必须能显示什么?第一局需要什么?第三十关和节日活动是否必须首次进入就下载?先回答这些问题,再划 Bundle,不要按美术文件类型机械地分成“所有图片”“所有声音”。
| 内容 | 可能的组织方式 | 核心考虑 |
|---|---|---|
| 启动界面与最低玩法资源 | 启动可用内容 | 首屏大小与可运行闭环 |
| 后续关卡 | 按关卡组 Bundle | 预加载时机与加载失败 |
| 大型可选活动 | 远程 Bundle 等方案 | 网络、版本、缓存和回退 |
| 多处共享资源 | 清楚的共同依赖 | 避免重复与意外拉大启动依赖 |
加载 Bundle 不等于资源已经可用
assetManager.loadBundle 成功后,还需通过返回的 Bundle 加载实际资源。任一步失败,都应恢复界面操作,而不是永远显示“加载中”。
微信构建需要额外检查
按官方小游戏分包文档配置 Bundle 的目标类型,再构建并检查实际产物。不要把任意一个 resources 目录自动当作微信分包,也不要只看编辑器资源目录猜最终包体。
包体与平台政策可能变化。Cocos 手册中的历史数字不应直接作为当前微信审核的绝对上限;发布前到微信官方后台和开发文档核对。
远程内容还有版本问题
相同 URL 不一定意味着客户端会立刻得到最新内容。需要版本化路径或匹配的构建版本配置、缓存策略、资源域名配置与失败回退。不要把引擎资源加载理解成可以绕过平台规定动态执行任意代码。
验收:首次进入、缓存命中、弱网中断、旧版本缓存、资源缺失、退出后回调返回,分别有可解释结果。
给 AI:“先画启动资源依赖图,再提出 Bundle 划分。说明首局加载路径、失败重试、版本缓存和微信构建配置,附实际产物检查步骤。”
依据:Asset Bundle、小游戏分包。