2

我将这个示例用于拖放对象,效果很好。但现在我想将一些元素组合在一起拖放它们。我用一些球体替换了示例中的立方体,并将它们组合在一个 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);

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

4

1 回答 1

2

没有代码很难说,但我认为您可能正在使用 .intersectObjects(objects),您应该尝试使用 .intersectObjects(objects, true) 代替。

这是文档:

.intersectObjects(对象,递归)

objects - 检查与射线相交的对象。

recursive — 如果设置,它还会检查对象的所有后代。否则它只检查与对象的相交。检查光线与有或没有后代的对象之间的所有交集。

三.js Raycaster

于 2013-05-16T10:52:56.110 回答