我正在查看http://threejs.org网站(http://threejs.org/examples/webgl_interactive_draggablecubes.html)上的示例,我看到他们正在沿着相对于相机的平面移动选定的立方体。我得知了无效投影与raycaster的关系。我不知道的是如何将其设置为始终沿着地面(平面)移动物体,即使相机处于某个角度。这个想法是让用户使用鼠标沿着地面移动物体,即使相机处于某个角度并且看起来并不完美。我是使用Three.js的新手,所以你可能想要解释我所缺少的内容。或者如果我没有解释自己,可以回答问题。
我的项目看起来像这样,我想用鼠标移动盒子。
答案 0 :(得分:2)
示例代码创建一个平面,并在摄像机角度发生变化时在MouseMove事件中更新它:
plane.setFromNormalAndCoplanarPoint(camera.getWorldDirection(plane.normal), INTERSECTED.position);
而不是这样做,将平面创建为
var plane = new THREE.Plane(new THREE.Vector3(0, 1, 0), 0);
是原点的XZ平面。