ローダーがロードされたモデルのクローンを作成したいのですが、この問題はgithubで見つかりましたが、解決策が機能しません。Object3Dに構造上の変更があったようです。
Three.jsの現在の安定バージョンでObject3Dのクローンを作成するにはどうすればよいですか?
この新しいバージョンの three.js には、メソッドがありますclone
。
たとえば、チェスのクイーンを使用し、複数回複製する必要がありました。
// queen is a mesh
var newQueen = queen.clone();
// make sure to re position to be able to see the new queen!
newQueen.position.set(100,100,100); // or any other coordinates
どんなメッシュでも機能します。
three.js r61を使用しました。
実際、mrdoob の答えはあなたの答えです...
ローダーは、メッシュの作成に使用するジオメトリを出力します。ローダーが作成したメッシュのジオメトリとマテリアルを使用して、新しいメッシュを作成する必要があります。
for ( var i = 0; i < 10; i ++ ) {
var mesh = new THREE.Mesh( loadedMesh.geometry, loadedMesh.material );
mesh.position.set( i * 100, 0, 0 );
scene.add( mesh );
}
ローダーの出力はメッシュであるため、Object3D ではなくメッシュのクローンを作成します。