intersectObjects不是一个函数

got*_*les 1 webgl three.js

我一直在使用Google WebGL Globe并尝试进行一些基本的交互,其中一个包括点击由纬度,经度等生成的条形图.

从我所看到的三个例子来看,答案在于投影仪和光线以找到交叉点.我遇到的问题是下面的代码,它已经从其他几个来源稍微调整过:

var projector = new THREE.Projector();

if (event.target == renderer.domElement) {
    var x = event.clientX;
    var y = event.clientY;
    var v = new THREE.Vector3((x/w)*2-1, -(y/h)*2+1, 0.5);
    projector.unprojectVector(v, camera);
    var ray = new THREE.Ray(camera.position, v.subSelf(camera.position).normalize());
    var intersects = ray.intersectObjects(scene.children);
    if (intersects.length > 0) {
      console.log("success");
    }
}
Run Code Online (Sandbox Code Playgroud)

"ray.intersectObjects不是函数"是错误,具体而言.

有任何想法吗?提前致谢.

Fun*_*bat 15

这没有回答......解决方案是使用new THREE.Raycaster- 而不是THREE.Ray