新人求助,放置武侠挂机项目,引擎版本 Cocos Creator 3.8.8,主力上架 TapTap TapPlay 即点即玩小游戏,顺带适配微信小游戏,长期被图集问题卡住,特此发帖咨询。
一、项目环境与核心需求
- 双平台区分 & 包体规则:
- 主力:TapTap TapPlay 即点即玩沙盒小游戏,无 4MB 主包硬性限制,总包宽松上限 100MB;
- 次要适配:微信小游戏,平台强制 启动主包≤4MB ,resources 文件夹所有资源会完整打入主包;当前 ui_res 素材 7.21M,移入 resources 会直接超限,无法发布微信渠道;
- 设计分辨率:750 × 1334
- 资源架构:道具图标、品质边框等 UI 素材统一存 自定义 Bundle(ui_res) ,做成分包按需加载,绝不放入 resources;
- 业务场景:背包动态生成最多 50 个物品格子,依据配置表动态读取图标、品质 Sprite;必须使用图集实现渲染合批,降低 DrawCall 避免低配机型卡顿;
- 核心诉求:图集资源放在自定义分包,TapPlay、微信小游戏双平台构建运行均可动态正常读取子图,分包无重复冗余图片。
二、踩坑完整经过
- AI 按 Cocos2.x 旧手动图集逻辑编写加载代码,采用
bundle.load(资源路径, SpriteFrame)动态加载贴图; - 测试引擎自带 自动图集 (AutoAtlas) ,存在两个无法解决的硬缺陷:① 自定义 Bundle 开启自动图集后,构建分包会同时打包原始零散 PNG + 合并大图,分包体积直接翻倍冗余;② 代码动态路径读取 SpriteFrame 时控制台报
doesn't contain资源不存在,背包图标、品质框全部空白,完全无法使用;③ 官方文档仅说明自动图集适配 场景静态引用 ,未标注「自定义 Bundle + 代码动态加载」存在路径映射失效 bug,3.8.8 版本稳定复现; - 版本原生短板:3.8.8 编辑器无右键新建手动 SpriteAtlas 功能,引擎仅提供自动图集配置,没有 Unity 式拖拽手动图集;
- 折中方案彻底作废:资源移入 resources 文件夹适配自动图集,仅微信渠道会直接触发 4MB 主包超限,同时丢失分包按需加载能力,玩家开局强制下载全部 7M UI 素材;TapPlay 虽无大小限制,但分包架构失效、加载体验变差,不考虑。
三、两个核心疑问
① Cocos Creator3.8.8, 自定义 Bundle 分包 + 代码动态加载贴图 场景,官方推荐稳定合规的图集解决方案是什么?② 如果采用 TexturePacker 外部图集(plist+png)放入 ui_res 自定义 Bundle,TapPlay 即点即玩、微信小游戏双平台能否稳定读取 SpriteAtlas 子图?存在哪些已知兼容坑?
