三个JS DefaultLoadingManager onProgress函数首先返回错误的总数

时间:2018-09-01 18:31:07

标签: three.js loading

我使用此代码来计算加载百分比:

THREE.DefaultLoadingManager.onProgress = (item, loaded, total) => {
        console.error(loaded / total * 100);
};

达到约80%,然后返回到60%,然后达到90%,然后返回到80%。

经过调试后,我发现项目总数首先是25,然后增加到35,然后达到52。

此增加是由于JSONLoader。我加载了一些对象,这些对象将材料作为图像,所以onProgress函数将这些图像添加到要加载的项目总数中。

我想知道如何一开始就知道要装载的物品的实际数量(52)。如果不可能的话,如何解决80%到60%的倒退?

1 个答案:

答案 0 :(得分:0)

您可以做的几件事:

您可以运行一次负载,并记录结果的最终计数,并对其进行硬编码以进行下一次运行。

或..

使用类似GLTF的格式嵌入所有资产。然后,您将获得每种型号一件商品。

或.. 并行触发所有负载。.不要响应前几个onProgress ..并希望在开始显示进度之前捕获完整的项目计数。

或..制作一个进度条,该进度条总是按剩余时间的某个百分比前进,并且可以调整该百分比以大致匹配单台计算机上的加载时间,或者在获得有关剩余负载的更多信息时动态地对其进行调整。