我正在为我的工作做一些事情,所以任何我正在做的事情的例子都很困难,因为我不能仅仅因为安全原因而指向回购,但如果需要的话,我会尽我所能。
我的问题是,如果我给PIXI的资产类给予太多的捆绑包,让它一次加载,它似乎就会给予。我将捆绑包清单作为数据加载(使用.init函数,然后告诉它后台加载所有资产),它似乎可以很好地找到并加载图像,但这个过程永远不会结束。
我加载所有的清单并启动,但我需要错开资源,以便用于“加载屏幕”的资源首先被拉入。因此,该清单被加载,显示在屏幕上,然后我们加载其余的游戏资源,希望加载屏幕显示进度。
问题是它似乎只是停止了。loadBundle promise似乎永远不会自行解决。我在加载完成之前不会启动游戏,所以我需要promise解决,这样我们才能继续游戏的资产。没有错误,它似乎没有解决或拒绝或给予任何响应。它只是消失在以太中,永远不会完成。
这里有大约14个包,大约110个不同大小的Map集,我要求PIXI加载在这里。这似乎很奇怪,当旧的加载器可以处理这个刚刚好。我不确定我做错了什么。
- 运行PIXI.js版本7.3.2并通过Webpack捆绑游戏。我使用的是自定义库,其中包含驱动游戏大部分内容的内部引擎。据我所知,我正确提供了资源,因为它们出现在Chrome,Firefox和Edge的网络选项卡中。
- 使用Texture Packer创建纹理贴图集,我通过它们的.json文件读取。Texture Packer设置为PIXI.js模式。
- 尝试加载所有14个bundle会导致Asset类永远加载,在找到所有资产并将其加载到该高速缓存后停止。它似乎卡住了,不再调用progress回调。
- 试图将一个捆绑包中的项目数量减少到每个捆绑包3个项目是没有帮助的
- 将加载的资产数量减少到一个捆绑包中只有5个不同大小的项目确实有帮助,也会完成。不知道为什么。我的笔记本电脑超载了吗?
是否有限制或性能调整,我应该做,以绕过这一点?有人观察到这种行为之前?
谢谢你的帮助
1条答案
按热度按时间vohkndzv1#
修复了它。原来PIXI.js确实允许多重打包,直到最近我才发现这一点。根据Texture Packer文档,我没有意识到包含此信息,它不仅支持它,而且希望你只加载第一个资产清单,然后查找并找到其余的资产。如果你加载其他所有内容,它似乎会慢到绝对爬行,导致此加载问题。