加载Bundle出错,可能是优先级问题 请问官方internal资源是怎么管理的 - Creator 2.x - Cocos中文社区版本2.4.9,记录一下踩的坑。
实测Internal包内的资源打包后并不会全部打包进,构建目录/assets/internal下。存在部分资源会被打包进自定义的bundle中,遵循bundle优先级(其实这里很奇怪,因为按cocos文档说法internal本身就是11级的内置bundle,比所有自定义bundle都更高,按照优先级也是应该打进internal路径下)。所以打包时有时会遇到真机运行时报加载prefab失败。
个人遇到的情况时prefab里的cc.Button控件即使transition未使用SPRITE,但由于可能之前切换到SPRITE过,导致prefab文件实际上引用了内置的default_btn_normal资源(在IDE上还看不出来)。直接修改prefab文件,或修改各bundle优先级,或修改加载bundle的时序逻辑,均可解决。
补图:
下面三图所示:ide中分包资源只有一张灯笼资源,prefab也只使用了这种灯笼资源,但是实际打包后分宝下会有一个40*40的内置资源。用文本方式查看prefab文件可以发现实际引用者为cc.Button
2024.06.27补充,官方解释原因补图: