Unity3d:获取平行于平面的方向向量

时间:2019-07-09 17:01:02

标签: c# unity3d math vector raycasting

enter image description here

我需要从相机发送一条与平面(地面)平行且与它的前向矢量(由黑色矢量表示)相同方向的射线广播

我不能使用世界空间方向,因为无论我旋转多少,相机的全局前向矢量都指向同一方向(因为它是VR相机)

我尝试使用Vector3.ProjectOnPlane,但不确定其工作原理。

有人可以帮我吗?

1 个答案:

答案 0 :(得分:2)

由于地面始终平行于XZ平面,这意味着Vector3.up垂直于地面。因此,您可以像这样使用Vector3.ProjectOnPlane来获得所需的射线方向:

Vector3 rayDirection = Vector3.ProjectOnPlane(cameraTransform.forward, Vector3.up);