我正在尝试确定光线是否与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.当然它与球体相交?
答案 0 :(得分:0)
交叉口代码看起来很好;你确定" group"已添加到"场景"和"球体"已被添加到" group"是否正确?在没有看到其余代码的情况下,无法确定错误可能是什么。请考虑创建一个包含完整代码的jsfiddle。
另外,也许可以尝试使用ray.intersectObjects(scene.children)测试它,看看是否有任何东西会记录一次碰撞。