Phaser Loader 卡在 99%

问题描述

我可以在预加载功能中运行的资产数量/大小是否有限制?我发现加载进度经常卡在 99% 并且需要几分钟才能完成并且已完成事件被触发或根本没有完成。

无论如何我可以调试它以找出进程卡住的地方,或者仅仅是加载 250MB 的游戏资产会不时使加载程序崩溃。

解决方法

我不知道 Phaser 对可以在预加载方法中加载的资产的数量或大小有硬性限制或限制。由于听起来您有时会看到延迟但成功的完成,而有时您从未达到 100% 成功加载,因此您更有可能遇到超时或其他一些加载错误。

您应该能够通过 FILE_LOAD_ERROR 事件捕获这些错误:

preload() {
   // Preload setup
   
   this.load.on('loaderror',this.onLoadError);
} 

onLoadError(file) {
  console.log(file);
}

您可以探索的另一个选项是修改 LoaderConfig

话虽如此,在你做任何事情之前 250MB 似乎是一个巨大的提升。您可能需要考虑跨场景分解负载,验证您的资产是否已尽可能压缩,或者在需要时而不是在预加载中进行一些资产的延迟加载。您可以看到按需资产加载的示例 here