Javascript 如何使用three.js拖放Object3D元素?

Javascript 如何使用three.js拖放Object3D元素?,javascript,three.js,Javascript,Three.js,我举了一个拖放对象的例子,效果非常好。但现在我想将一些元素分组,以便将它们拖放到一起。我用一些球体替换了示例中的立方体,并将它们组合在一个Object3D()中 var数据=[[0,10]、[50,20]、[100,7]、[150,18]、[200,15]、[250,3]、[300,10]、[350,25]; var group=new THREE.Object3D(); 对于(var i=0;i

我举了一个拖放对象的例子,效果非常好。但现在我想将一些元素分组,以便将它们拖放到一起。我用一些球体替换了示例中的立方体,并将它们组合在一个Object3D()中

var数据=[[0,10]、[50,20]、[100,7]、[150,18]、[200,15]、[250,3]、[300,10]、[350,25];
var group=new THREE.Object3D();
对于(var i=0;i

但是我不能在我的场景中选择这组对象:(我做错了什么?不可能选择一组吗?或者它必须是什么样子?

没有代码很难判断,但我认为您可能正在使用。intersectObjects(对象),您应该尝试改为使用。intersectObjects(对象,true)

以下是文件:

.相交对象(对象,递归)

对象-要检查与光线相交的对象

递归-若设置了,它还会检查对象的所有后代。否则它只检查对象的相交。 检查光线和对象之间的所有交点,包括或不包括子体


当我这样做时。intersectObjects(object,true),你可以拖动单个球体。但我不想这样做!我想一次移动整个球体组。你需要获取所选感兴趣对象的父对象并拖动它。这是一个简单但有用的提示!我在“INTERSECTED=intersects[0]中添加了一个“父对象”。object.parent也适用于所选对象,并且有效!:D但现在每个几何体都必须在一个组中进行拖动。这不好,但我现在可以接受。
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);