THREE.js でループを使用して複数の車のモデルを読み込んでいますが、問題は、すべてのオブジェクトをロードする場合と、すべてのオブジェクトをロードしない場合があることです。たとえば、ループの反復が 3 回の場合、2 つのオブジェクトをロードするときもあれば、1 つをロードするときもあれば、3 つのオブジェクトすべてをロードするときもあります。どうしてか分かりません?私はたくさん検索しましたが、有用なものが見つかりません。これがコードです。
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()
この後、私が持っているもう1つのローダーが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();
});
これは問題なく動作しますが、上記の問題が何であるかを理解できません。