我一直在使用 Google WebGL Globe 并尝试进行一些基本的交互,其中之一包括单击由纬度、经度等生成的条。
从我看到的大量three.js 示例中,答案在于投影仪和射线来寻找交叉点。我遇到的问题是下面的代码,它已经从其他几个来源进行了微调:
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");
}
}
具体来说,“ray.intersectObjects 不是函数”是错误。
有任何想法吗?提前致谢。