2013-09-16 2 views
0

Мне нужно управлять позицией группы объектов как одного элемента.Как создать два куба в одном объекте?

у меня есть:

tankMesh1 = new THREE.Mesh(geometry, material); 
tankMesh2 = new THREE.Mesh(geometry, material); 
scene.add(tankMesh1); 
scene.add(tankMesh2); 

tankMesh2.position = tankMesh2.position + offset * cos (angle) 

мне нужно:

tankMeshBig = new THREE.Mesh(tankMesh1 , tankMesh2); 

Пример: http://jsfiddle.net/ksRyQ/2287/

+0

Возможный дубликат [три.js - пример группы сетки? (THREE.Object3D() advanced)] (http://stackoverflow.com/questions/7985805/three-js-mesh-group-example-three-object3d-advanced) –

+0

См. 'THREE.GeometryUtils.merge()' в [документы] (http://threejs.org/docs/#Reference/Extras/GeometryUtils). – WestLangley

ответ

1

Вы можете использовать новый THREE.Object3D():

ЯШ:

var group=new THREE.Object3D(); 

tankMesh1 = new THREE.Mesh(geometry, material); 
group.add(tankMesh1); 

geometry = new THREE.CubeGeometry(3, 2, 5); 
tankMesh2 = new THREE.Mesh(geometry, material); 
tankMesh2.position.y = 3; 
group.add(tankMesh2); 

group.rotation.y = 3.141/3; 

scene.add(group); 

http://jsfiddle.net/zYLSC/

+0

Если вы собираетесь использовать этот подход, то в вашей скрипке вы должны переводить/вращать группу, а не сами меши. – WestLangley

+0

Хорошо, я обновил ответ. – simonzack

Смежные вопросы