Cocos Creator3.8.8 自定义 Bundle 动态加载图标空白,自动图集无法使用,求合规图集方案

新人求助,放置武侠挂机项目,引擎版本 Cocos Creator 3.8.8,主力上架 TapTap TapPlay 即点即玩小游戏,顺带适配微信小游戏,长期被图集问题卡住,特此发帖咨询。

一、项目环境与核心需求

  1. 双平台区分 & 包体规则:
  • 主力:TapTap TapPlay 即点即玩沙盒小游戏,无 4MB 主包硬性限制,总包宽松上限 100MB;
  • 次要适配:微信小游戏,平台强制 启动主包≤4MB ,resources 文件夹所有资源会完整打入主包;当前 ui_res 素材 7.21M,移入 resources 会直接超限,无法发布微信渠道;
  1. 设计分辨率:750 × 1334
  2. 资源架构:道具图标、品质边框等 UI 素材统一存 自定义 Bundle(ui_res) ,做成分包按需加载,绝不放入 resources;
  3. 业务场景:背包动态生成最多 50 个物品格子,依据配置表动态读取图标、品质 Sprite;必须使用图集实现渲染合批,降低 DrawCall 避免低配机型卡顿;
  4. 核心诉求:图集资源放在自定义分包,TapPlay、微信小游戏双平台构建运行均可动态正常读取子图,分包无重复冗余图片。

二、踩坑完整经过

  1. AI 按 Cocos2.x 旧手动图集逻辑编写加载代码,采用 bundle.load(资源路径, SpriteFrame) 动态加载贴图;
  2. 测试引擎自带 自动图集 (AutoAtlas) ,存在两个无法解决的硬缺陷:① 自定义 Bundle 开启自动图集后,构建分包会同时打包原始零散 PNG + 合并大图,分包体积直接翻倍冗余;② 代码动态路径读取 SpriteFrame 时控制台报 doesn't contain 资源不存在,背包图标、品质框全部空白,完全无法使用;③ 官方文档仅说明自动图集适配 场景静态引用 ,未标注「自定义 Bundle + 代码动态加载」存在路径映射失效 bug,3.8.8 版本稳定复现;
  3. 版本原生短板:3.8.8 编辑器无右键新建手动 SpriteAtlas 功能,引擎仅提供自动图集配置,没有 Unity 式拖拽手动图集;
  4. 折中方案彻底作废:资源移入 resources 文件夹适配自动图集,仅微信渠道会直接触发 4MB 主包超限,同时丢失分包按需加载能力,玩家开局强制下载全部 7M UI 素材;TapPlay 虽无大小限制,但分包架构失效、加载体验变差,不考虑。

三、两个核心疑问

① Cocos Creator3.8.8, 自定义 Bundle 分包 + 代码动态加载贴图 场景,官方推荐稳定合规的图集解决方案是什么?② 如果采用 TexturePacker 外部图集(plist+png)放入 ui_res 自定义 Bundle,TapPlay 即点即玩、微信小游戏双平台能否稳定读取 SpriteAtlas 子图?存在哪些已知兼容坑?

1.测试不打图集能不能跑通 2.不要盲目打图集,相同功能的散图打成一个图集,比如签到、任务、活动页面分别对应一个图集。图集的本质核心是在将同一时间出现的散图打包减少请求次数,如果你把本次加载不相干的资源也打进了图集那就强制要一起下载了

建议新手先过一下官方文档的自动图集的使用方法,不然问题一大堆

文档只是让你了解,
实际生产环境需求跟文档不一定对得上的.

如果采用 TexturePacker 外部图集(plist+png)放入 ui_res 自定义 Bundle,TapPlay 即点即玩、微信小游戏双平台能否稳定读取 SpriteAtlas 子图?存在哪些已知兼容坑?

这个是绝对可行的。我建议自己管理图集。别依赖引擎的自动图集功能。

1赞

嗷,我已经不知道说啥了,我用的是自动图集,编辑预览状态,背包内看不到物品表配置的的物品图标,ai说编辑器预览状态下就是看不到,然后我构建发布去微信开发者工具看这个测试包,也不行,还是显示不了,所以是ai写的背包相关代码有问题吧

目前用自动图集不论是编辑器预览状态还是发布后在微信开发者工具里看测试包,背包里的物品都不显示配置的物品图标,感觉得用TexturePacker 外部图集了?就搞不懂这个自动图集是干啥的了,unity的图集应该 类似 TexturePacker 外部图集 吧,感觉这种东西应该不难用啊

不用自动图集呢,你把自动图集去掉,自动图集只是优化性能用的,你先跑通再说,不存在编辑器/浏览器运行不了必须打包才能运行的情况

不要用自动图集,3.8 会自动合图.自动图集那一套还是2.4的了. 你用自动图集,图片属性还勾选了packable ,资源拖拽引用不当,等等因素,会导致你各种问题. 两个办法删掉自动图集或者自己用texturePacker

啊,我已经下载TexturePacker了,发现这居然还是付费的?unity自带的图集不都是免费的吗 :rofl:

7天试用,我先试试能不能把功能跑通吧~