LoadingManager错误的总加载项目数

时间:2019-06-01 16:44:35

标签: three.js

我在使用LoadingManager时遇到一些问题,我正在尝试使用这些问题来预加载模型和纹理。

manager = new THREE.LoadingManager();
manager.onProgress = function ( item, loaded, total ) {
  console.log("loaded: " + loaded + " total: " + total);
};

init();

function init()
{
  // instantiate a loader
  var loader = new THREE.OBJLoader(manager);
  var textureLoader = new THREE.TextureLoader(manager);
  
  // load first model
  loader.load('model1.obj', function (object) 
  {
    var texture = textureLoader.load('texture1.png');
  });
  
  // load second model
  loader.load('model2.obj', function (object) 
  {
    var texture = textureLoader.load('texture2.png');
  });
}

控制台输出为:

OBJLoader: 80.058837890625ms
loaded: 1 total: 3
loaded: 2 total: 3
OBJLoader.js:787 OBJLoader: 5.671875ms
loaded: 3 total: 4
loaded: 4 total: 4

在加载第一个模型和纹理后,为什么只有两个(model1.obj和texture1.png),经理会认为总共要加载3个项目?此外,要装载的物品总数从3变为4。是否可以对此进行更正,以便显示正确的总数4?

1 个答案:

答案 0 :(得分:1)

  

在加载第一个模型和纹理后,为什么只有两个(model1.obj和texture1.png),经理会认为总共要加载3个项目?

因为该应用程序将首先开始同时加载两个OBJ文件,然后再加载纹理。因此顺序不是model1.obj => texture1.png => model2.obj => texture2.pngmodel1.obj的末尾将通知加载管理器model2.objinit()。建议您在LoadingManager.itemStart()LoadingManager.itemEnd()中设置断点,以更好地了解内部加载工作流程。

three.js R104