Olá, quero carregar um modelo dae em meu programa, por exemplo, um bule e quero ter 10 bules na cena, uso a função clone como segue, mas o objeto parece referir-se ao pai e, em seguida, referir-se a si mesmo então não posso cloná-lo, como posso ter 10 cópias do meu 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;
}
Você deve ser capaz de fazer algo assim:
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 );
}
Não funcionou, encontrei o mesmo problema.
este é meu objeto collada.scene
Por favor, não poste em tópicos que estão fechados há anos. Em vez disso, abra um novo problema, forneça seu arquivo dae
e o respectivo código three.js
.
Comentários muito úteis
Por favor, não poste em tópicos que estão fechados há anos. Em vez disso, abra um novo problema, forneça seu arquivo
dae
e o respectivo códigothree.js
.