bonjour, je veux charger un modèle dae dans mon programme, par exemple une théière et je veux avoir 10 théières dans la scène j'utilise la fonction clone comme suit, mais l'objet semble faire référence à son parent, puis se référer à lui-même donc je ne peux pas le cloner, comment puis-je avoir 10 copies de mon objet ?
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;
}
Vous devriez pouvoir faire quelque chose comme ceci :
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 );
}
Cela n'a pas fonctionné, je rencontre le même problème.
c'est mon objet collada.scene
Merci de ne pas poster sur des sujets fermés depuis des années. Ouvrez plutôt un nouveau numéro, fournissez votre fichier dae
et le code three.js
correspondant.
Commentaire le plus utile
Merci de ne pas poster sur des sujets fermés depuis des années. Ouvrez plutôt un nouveau numéro, fournissez votre fichier
dae
et le codethree.js
correspondant.