【发布时间】:2013-05-08 01:23:15
【问题描述】:
我正在使用 THREE.js 中的循环加载多个汽车模型,但问题是有时它会加载所有对象,但有时它不会加载所有对象。例如,如果循环是 3 次迭代,它有时会加载 2 个对象,有时会加载 1 个,有时会加载所有三个对象。我不知道为什么?我搜索了很多,但找不到任何有用的东西。这是代码。
for (var k = 1; k <= myWorld.noOfEnemies(); k++) {
myWorld.setWorldEnemyCar(k);
loader2.load('obj/us/us_police_car.dae', function colladaReady(collada) {
object3 = collada.scene;
object3.scale.x = object3.scale.y = object3.scale.z = 2;
object3.updateMatrix();
object3.position.x = myWorld.enemyCar.position.x;
object3.position.y = myWorld.enemyCar.position.y;
object3.position.z = myWorld.enemyCar.position.z;
object3.rotation.x = -(Math.PI / 2);
object3.rotation.z = (Math.PI / 2);
enemyModels.push(object3);
//localObject.rotation.z = -(Math.PI / 2);
//collidableMeshList3 = localObject;
//console.log(collidableMeshList3);
// init();
// animate();
});
}
在我拥有init() 和animate() 函数的另一个加载器之后
loader2.load('obj/us/us_police_car.dae', function colladaReady(collada) {
localObject = collada.scene;
localObject.scale.x = localObject.scale.y = localObject.scale.z = 2;
localObject.updateMatrix();
localObject.position.x = 0;
localObject.position.y = 0;
localObject.position.z = 0;
localObject.rotation.x = -(Math.PI / 2);
localObject.rotation.z = (Math.PI / 2);
//localObject.rotation.z = -(Math.PI / 2);
//collidableMeshList3 = localObject;
//console.log(collidableMeshList3);
//scene.add(localObject);
init();
animate();
});
这工作正常,但无法弄清楚上面的问题是什么。
【问题讨论】:
-
在使用单个加载程序实例加载多个 collada 文件时,collada 加载程序似乎存在错误 [github.com/mrdoob/three.js/issues/5721],请参阅下面的答案。
标签: javascript three.js