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

时间:2013-05-16 10:34:53

标签: javascript three.js

我采用了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);

但是我不能在我的场景中选择这组对象:(我做错了什么?是不是可以选择一个组?或者它看起来怎么样?

1 个答案:

答案 0 :(得分:2)

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

以下是文档:

.intersectObjects(objects,recursive)

objects - 要检查与光线交叉的对象。

recursive - 如果设置,它还会检查对象的所有后代。否则它只检查与对象的交叉。 使用或不使用后代检查光线和物体之间的所有交叉点。

three.js Raycaster

相关问题