Задать вопрос
@Gera01
Unity, С# и больше ничего.

Как получить такой результат (вопрос по векторам)?

Есть 2 вектора.
_player.position и _camera.position
Мы можем вычесть _player.position и _camera.position и получить направление от одного обьекта к другому, а так же можем поставить - перед результатом или попробовать его инвертировать, но в таком случае поворот персонажа будет по всем осям _player.rotation, а персонаж разворачивается только по оси y.
Были попытки смотреть в обратную сторону от камеры с помощью _player.LookAt, и ставить x и z = 0, но они должны оставаться такими, какими и были, потому что игрок при передвижении вращяется по этим осям.
Вопрос в том, как реализовать такое вычисление. Оно не должно сразу же применяться. Мне нужен просто вектор forward, чтобы применить его к управлению.

transform.Rotate(0, _playerInput_cs.GetHorizontal() * _rotateSpeed, 0);

        Vector3 forward = transform.TransformDirection(Vector3.forward);
        float curSpeed = _speed * _playerInput_cs.GetVertical();
        controller.SimpleMove(forward * curSpeed);
  • Вопрос задан
  • 69 просмотров
Подписаться 1 Средний 1 комментарий
Решения вопроса 1
freeExec
@freeExec
Участник OpenStreetMap
Сформируй новый вектор, в котором одни компоненты остаются с такими же значениями, а по нужной оси смени знак.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы