IntersectObjects不返回结果

时间:2013-03-22 21:53:08

标签: javascript three.js webgl

我正在尝试确定光线是否与three.js中的对象相交

我的场景设置和显示效果很好。

我点击我创建的球体如下:

var intersect_objects = [];

//Initialize scene and object and events

scene = new THREE.Scene();
group = new THREE.Object3D();
sphere = new THREE.SphereGeometry(23.8, 60, 60);

//Add meshes and textures etc..

intersect_objects.push(group);

function onDocumentMouseUp(event) {

    event.preventDefault();

    var mouseX = (event.clientX / window.innerWidth)*2-1;
    var mouseY = -(event.clientY /window.innerHeight)*2+1;

    var vector = new THREE.Vector3(mouseX, mouseY, 0.5);
    projector.unprojectVector(vector, camera);

    var ray = new THREE.Raycaster(camera.position, vector.sub(camera.position).normalize());

    var intersects = ray.intersectObjects(intersect_objects);

    console.log(intersects.length); //Aways 0

}

但是intersects.length总是0.当然它与球体相交?

1 个答案:

答案 0 :(得分:0)

交叉口代码看起来很好;你确定" group"已添加到"场景"和"球体"已被添加到" group"是否正确?在没有看到其余代码的情况下,无法确定错误可能是什么。请考虑创建一个包含完整代码的jsfiddle。

另外,也许可以尝试使用ray.intersectObjects(scene.children)测试它,看看是否有任何东西会记录一次碰撞。