我有一个物体(飞机),它是相机的一个孩子,因此它“固定在屏幕上”。THREE.JS对相机的孩子进行光线投射
plane = new THREE.Mesh(new THREE.PlaneGeometry(10, 10, 10, 10), material);
plane.position.set(0,0,-5);
camera.add(plane);
在这架飞机上,我有另一个我想移动的物体,我正在发送光线投射到飞机上。
if(INTERSECTED){
handleEvent();
raycaster.setFromCamera(mouse, camera);
var intersects = raycaster.intersectObject(plane);
if(intersects.length>0){
//what is happening here?
//these points are definitely not on the plane!
var x = intersects[0].point.x;
var y = intersects[0].point.y;
var z = intersects[0].point.z;
INTERSECTED.position.set(x,y,z);
console.log(x,y,z);
}
}
射线撞击飞机的位置对我来说没有任何意义!
请帮帮我,我卡住了! 谢谢!
这里是小提琴:
jsfiddle.net/74jLjz6q/2
PS:我发现这个职位,类似的问题,这里的摄像头是另一对象的孩子..我找不到我的问题有任何帮助
它必须是周围的其他方法(世界到地方):..
THREE.js Raycasting from a child camera to the scene
尝试使用'raycaster.intersectObject(plane,true);'true告诉raycaster通过子视图,然后'intersects [0]'应该是第一个相交的对象 – Rush2112