こんにちは、ティーポットなどのdaeモデルをプログラムにロードしたいのですが、シーンに10個のティーポットを入れたいのですが、次のようにクローン関数を使用しますが、オブジェクトはその親を参照しているようで、それからそれ自体を参照しています。クローンを作成できません。オブジェクトのコピーを10個作成するにはどうすればよいですか?
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;
}
あなたはこのようなことをすることができるはずです:
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 );
}
それはうまくいきませんでした、私は同じ問題に遭遇します。
これは私のcollada.sceneオブジェクトです
何年も閉鎖されているスレッドには投稿しないでください。 代わりに新しい問題を開き、 dae
ファイルとそれぞれのthree.js
コードを提供します。
最も参考になるコメント
何年も閉鎖されているスレッドには投稿しないでください。 代わりに新しい問題を開き、
dae
ファイルとそれぞれのthree.js
コードを提供します。