如何将 ColladaLoader 加载的模型存储在 Three.js 中?

How to store Model loaded by ColladaLoader in Three.js?

自从 Three.js 迁移(r68 -> r69)以来,ColladaLoader returns 一个场景而不是 Object3D。现在如何获取加载的 Object3D?我想将加载的对象存储在一个 var 中以便每次都使用它。

                var newpos = Cube.position;
                var oLoader = new THREE.ColladaLoader();
                oLoader.load('models/logo.dae', 
                    function(collada) 
                    {
                      var object = collada.scene;
                      var skin = collada.skins[0];
                      object.rotation.x = -Math.PI / 2;
                      object.rotation.z = Math.PI / 2;
                      object.position.x = newpos.x;
                      object.position.y = newpos.y+1.85;
                      object.position.z = newpos.z;
                      object.scale.set(0.75, 0.75, 0.75);
                      object.updateMatrix();
                      scene.add(object);
                    },
                    function ( xhr ) {
                //      console.log( (xhr.loaded / xhr.total * 100) + '% loaded' );
                    }
                );  

ColladaLoader returns 一个场景,因为加载的模型不是创建为 3DObject。 ColladaLoader 创建一个新场景,添加到您的场景中,包括加载的 .dae-Model。 (现在是 returns 一组)那是因为不是每个模型都是一个 Object。检查您加载的 dae.scene 的子项,这很有帮助。