c# - Unity3d : Get a direction vector parallel to plane

标签 c# unity-game-engine math vector raycasting

enter image description here

我需要从相机发送光线转换,该光线平行于平面(地面)且与其前向矢量(由黑色矢量表示)相同方向

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

我尝试使用 Vector3.ProjectOnPlane ,但不确定它是如何工作的。

有人可以帮助我吗?

最佳答案

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

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

关于c# - Unity3d : Get a direction vector parallel to plane,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56957432/

相关文章:

colors - 在运行时更改文本颜色(Unity)?

unity-game-engine - Unity3D 尝试理解 Monoscript

unity-game-engine - Vector2.MoveTowards——移动到目标位置等

javascript - 如何使用 Jquery 对货币进行四舍五入

javascript - 在 if 语句 Javascript 中使用括号进行算术

c# - "dotnet ef database update"以编程方式使用 Entity Framework Core

c# - 从表单中提取填充方法

c++ - 从球体上的 3d 点计算 RPY(滚动俯仰偏航)

c# - Polly 在重试时更改查询字符串

javascript - 使用 javascript 将 HTML 表格数据存储在数组中