Naj*_*qib 5 javascript three.js
我在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();
});
}
Run Code Online (Sandbox Code Playgroud)
在这之后我又拥有了一个装载机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();
});
Run Code Online (Sandbox Code Playgroud)
这工作正常,但无法弄清楚上面的问题是什么.
小智 0
我有同样的问题。显然 Collada 加载器当前无法处理加载多个文件。我通过将所有对象放入一个文件中解决了这个问题,然后当它完成加载时,我找到各个对象并单独使用它们。希望这对您有所帮助,并且这是您的情况的一个选择。
| 归档时间: |
|
| 查看次数: |
4627 次 |
| 最近记录: |