Unity3d: получить вектор направления, параллельный плоскости - PullRequest
2 голосов
/ 09 июля 2019

enter image description here

Мне нужно отправить raycast с моей камеры, которая параллельна плоскости (Земля) и в том же направлении ее прямого вектора (представленного вектором черного цвета)

Я не могу использовать направление мирового пространства, потому что глобальный передний вектор камеры указывает на одно и то же направление, независимо от того, насколько сильно я его поворачиваю (Поскольку это камера VR)

Я пытался использовать Vector3.ProjectOnPlane , но не уверен, как он работает.

Может ли кто-нибудь мне помочь?

1 Ответ

2 голосов
/ 09 июля 2019

Поскольку земля всегда параллельна плоскости XZ, это означает, что Vector3.up является нормальным к земле. Таким образом, вы можете использовать Vector3.ProjectOnPlane, чтобы получить желаемое направление луча:

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