halo, saya ingin memuat model dae ke dalam program saya, misalnya teko dan saya ingin memiliki 10 teko dalam adegan Saya menggunakan fungsi klon sebagai berikut, tetapi objek tampaknya merujuk ke induknya, dan kemudian merujuk ke dirinya sendiri jadi saya tidak bisa mengkloningnya, bagaimana saya bisa memiliki 10 salinan objek saya?
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;
}
Anda harus dapat melakukan sesuatu seperti ini:
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 );
}
Itu tidak berhasil, saya menemui masalah yang sama.
ini adalah objek colada.scene saya
Tolong jangan posting di utas yang ditutup selama bertahun-tahun. Buka edisi baru sebagai gantinya, berikan file dae
dan kode three.js
masing-masing.
Komentar yang paling membantu
Tolong jangan posting di utas yang ditutup selama bertahun-tahun. Buka edisi baru sebagai gantinya, berikan file
dae
dan kodethree.js
masing-masing.