Hallo, ich möchte ein Dae-Modell in mein Programm laden, zum Beispiel eine Teekanne und ich möchte 10 Teekannen in der Szene haben. Ich verwende die Klonfunktion wie folgt, aber das Objekt scheint auf sein Elternteil zu verweisen und dann auf sich selbst Ich kann es also nicht klonen. Wie kann ich 10 Kopien meines Objekts haben?
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;
}
Sie sollten in der Lage sein, so etwas zu tun:
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 );
}
Es hat nicht funktioniert, ich habe das gleiche Problem.
das ist mein collada.scene-Objekt
Bitte nicht in Threads posten, die seit Jahren geschlossen sind. Öffnen Sie stattdessen eine neue Ausgabe, geben Sie Ihre dae
Datei und den entsprechenden three.js
Code an.
Hilfreichster Kommentar
Bitte nicht in Threads posten, die seit Jahren geschlossen sind. Öffnen Sie stattdessen eine neue Ausgabe, geben Sie Ihre
dae
Datei und den entsprechendenthree.js
Code an.