PragmaGames
@PragmaGames
Увлекаюсь Unity.

Как сделать отклонение для вектора?

6694358b8cae6842264539.png

public Vector3 ModifyDirection(Vector3 originalDirection, Vector2 point)
{
    ///return
}


originalDirection (нормализован) = d на рисунке
point (рандомная точка от 0 - 1 по X и 0 - 1 по Y) = красная точка на рисунке

Требуется узнать красный вектор
  • Вопрос задан
  • 148 просмотров
Пригласить эксперта
Ответы на вопрос 1
@Mercury13
Программист на «си с крестами» и не только
1. Умножим наш point на r.
2. Повернём (rx, ry, 1) так, чтобы (0,0,1) → d. Ищите эту матрицу где-то в движке: вы имитируете разброс оружия — так что это будет матрица поворотов камеры. Если прицел не в центре экрана (бывает для всяких там гранатомётов) — применяем ту же самую поправку. Если видовая матрица и матрица наводки развязаны (бывает в сетевой игре) — то брать матрицу наводки, понятно.
3. Снова нормализуем.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы