在THREE.js中加载多个Collada对象

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 加载器当前无法处理加载多个文件。我通过将所有对象放入一个文件中解决了这个问题,然后当它完成加载时,我找到各个对象并单独使用它们。希望这对您有所帮助,并且这是您的情况的一个选择。