Three.js将两个对象连接为一个对象

Three.js connect two object as one

本文关键字:两个 对象连接 一个对象 js Three      更新时间:2023-09-26

我做了这个函数,为几何体的每个顶点创建一个球体,并将其放置在垂直线的相同位置。例如,如果我有一个立方体,函数会为每个垂直立方体放置一个球体。

function makeSphereVertices(){
console.log("makesphere");
spheres = [];
for(var j=0 ; j<geometryContainer.length ; j++) {               
for (var i=0 ; i<geometryContainer[j].geometry.vertices.length ; i++){
var sphereGeometry = new THREE.SphereGeometry(0.04,10,10);//relative to dimension object : ToDo
var sphereMaterial = new THREE.MeshBasicMaterial({transparent: false,color: 0x000000 /*opacity: 0.01*/});
spheres = new THREE.Mesh(sphereGeometry,sphereMaterial);
spheres.position.set(geometryContainer[j].geometry.vertices[i].x,
                  geometryContainer[j].geometry.vertices[i].y,
                  geometryContainer[j].geometry.vertices[i].z);
                  console.log(geometryContainer[j].id);
    spheres.name = "sphere";            
scene.add(spheres);
verticesSphere.push(spheres);
 }
    }

  }

之后,我创建了一个函数来移动我的立方体,就像这个可拖动的形状。现在的问题是:我找不到一种方法来移动立方体和所有球体。例如,如果拖动立方体,所有球体都将保持在原来的位置。有没有办法把球体链接到我的立方体上?非常感谢。

通过将它们全部放在一个新对象中。

group = new THREE.Object3D();//create an empty container
group.add( mesh );//add a mesh with geometry to it
scene.add( group );//when done, add the group to the scene

three.js-网格组示例?(THREE.Object3D(高级)

因此,请确保将立方体和所有球体放置在新创建的组对象中。