我使用此代码来计算加载百分比:
THREE.DefaultLoadingManager.onProgress = (item, loaded, total) => {
console.error(loaded / total * 100);
};
达到约80%,然后返回到60%,然后达到90%,然后返回到80%。
经过调试后,我发现项目总数首先是25,然后增加到35,然后达到52。
此增加是由于JSONLoader。我加载了一些对象,这些对象将材料作为图像,所以onProgress函数将这些图像添加到要加载的项目总数中。
我想知道如何一开始就知道要装载的物品的实际数量(52)。如果不可能的话,如何解决80%到60%的倒退?
答案 0 :(得分:0)
您可以做的几件事:
您可以运行一次负载,并记录结果的最终计数,并对其进行硬编码以进行下一次运行。
或..
使用类似GLTF的格式嵌入所有资产。然后,您将获得每种型号一件商品。
或.. 并行触发所有负载。.不要响应前几个onProgress ..并希望在开始显示进度之前捕获完整的项目计数。
或..制作一个进度条,该进度条总是按剩余时间的某个百分比前进,并且可以调整该百分比以大致匹配单台计算机上的加载时间,或者在获得有关剩余负载的更多信息时动态地对其进行调整。