hola, quiero cargar un modelo dae en mi programa, por ejemplo, una tetera y quiero tener 10 teteras en la escena.Utilizo la función de clonación de la siguiente manera, pero el objeto parece referirse a su padre y luego a sí mismo. así que no puedo clonarlo, ¿cómo puedo tener 10 copias de mi objeto?
var dae;
var dae = [];
var loader = new THREE.ColladaLoader();
loader.options.convertUpAxis = true;
loader.load( 'teapot.dae',function colladaReady( collada ) {
dae = collada.scene;
for(var i = 0;i < 10;++i){
daes[i] = clone(dae);
}
});
}
function clone(obj){
if(obj == null || typeof(obj) != 'object')
return obj;
var temp = new Object();//obj.constructor(); // changed
for(var key in obj)
temp[key] = clone(obj[key]);
return temp;
}
Debería poder hacer algo como esto:
var geometry = collada.scene.children[ 0 ].geometry;
var material = collada.scene.children[ 0 ].material;
for ( var i = 0; i < 10; i ++ ) {
var mesh = new THREE.Mesh( geometry, material );
mesh.position.set( i * 100, 0, 0 );
scene.add( mesh );
}
No funcionó, me encuentro con el mismo problema.
este es mi objeto collada.scene
No publiques en hilos que estén cerrados durante años. En su lugar, abra una nueva edición, proporcione su archivo dae
y el código three.js
respectivo.
Comentario más útil
No publiques en hilos que estén cerrados durante años. En su lugar, abra una nueva edición, proporcione su archivo
dae
y el códigothree.js
respectivo.