我正在尝试克隆ThreeJS Object3D模型。我在这里和GitHub上找到了各种代码,没有什么对我有用。以下代码部分来自How to clone an object3d in Three.js?
var loader = new THREE.ColladaLoader();
loader.load('../Model.dae', function (result) {
var loadedMesh = // No sure where this comes from
// Create X of these
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 );
}
}
你能帮忙填补空白吗?
答案 0 :(得分:2)
这最终起作用了:
var loader = new THREE.ColladaLoader();
loader.load('../Turn.dae', function colladaReady(result) {
var piece = result.scene.children[0];
for (var i = 0; i < 10; i++) {
var newPiece = new THREE.Object3D();
for (var j = 0; j < piece.children.length; j++) {
newPiece.add(new THREE.Mesh(piece.children[j].geometry, piece.children[j].material));
}
newPiece.position.set(i * 100, 0, 0);
newPiece.scale.set(30, 30, 30);
scene.add(newPiece);
}
renderer.render(scene, camera);
});
因此,我没有获得单个网格,而是获得了一组网格。我是新手,所以我不知道为什么这与我见过的其他答案有所不同。 dae文件直接从Sketchup导出。我有兴趣知道是否有更容易/更好的做法。