Three.js: Cara mengkloning model dalam program

Dibuat pada 20 Feb 2012  ·  3Komentar  ·  Sumber: mrdoob/three.js

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;
}
Question

Komentar yang paling membantu

Tolong jangan posting di utas yang ditutup selama bertahun-tahun. Buka edisi baru sebagai gantinya, berikan file dae dan kode three.js masing-masing.

Semua 3 komentar

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
image

Tolong jangan posting di utas yang ditutup selama bertahun-tahun. Buka edisi baru sebagai gantinya, berikan file dae dan kode three.js masing-masing.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat

Masalah terkait

filharvey picture filharvey  ·  3Komentar

stonexjr picture stonexjr  ·  3Komentar

jack-jun picture jack-jun  ·  3Komentar

Horray picture Horray  ·  3Komentar

makc picture makc  ·  3Komentar