我采用了this示例来拖放对象,它非常完美。但现在我想将一些元素组合起来拖放它们。我用一些Spheres替换了示例中的Cubes,并将它们组合在一个Object3D()中。
var data = [[0,10],[50,20],[100,7],[150,18],[200,15],[250,3],[300,10],[350,25]];
var group = new THREE.Object3D();
for(var i = 0; i< data.length; i++){
var mesh = new THREE.Mesh( new THREE.SphereGeometry(data[i][1],20,20), sphereMaterial);
mesh.position.y = data[i][0];
mesh.updateMatrix();
group.add(mesh);
}
objects.push(group);
scene.add(group);
但是我不能在我的场景中选择这组对象:(我做错了什么?是不是可以选择一个组?或者它看起来怎么样?
答案 0 :(得分:2)
没有代码很难说,但我认为你可能正在使用.intersectObjects(对象),你应该尝试使用.intersectObjects(objects,true)。
以下是文档:
.intersectObjects(objects,recursive)
objects - 要检查与光线交叉的对象。
recursive - 如果设置,它还会检查对象的所有后代。否则它只检查与对象的交叉。 使用或不使用后代检查光线和物体之间的所有交叉点。