@Void59

Почему некорректно работает вращение в Unity?

Добрый день!
У меня такая проблема: один из врагов всегда должен поворачиваться в сторону игрока, но почему-то путает стороны.
Когда игрок справа сверху противник смотрит влево вверх, когда игрок слева сверху - вправо вверх, когда игрок внизу - аналогично. Однако когда игрок ровно над или под этим противником, то противник смотрит прямо на игрока.
Вот кусок кода с вращением:
void Hunter()
    {
        Vector2 difference = transform.position - player.transform.position;
        float rot = Mathf.Atan2(difference.x, difference.y) * Mathf.Rad2Deg;
        transform.rotation = Quaternion.Euler(0, 0, rot + offset_for_hunter);
    }
  • Вопрос задан
  • 74 просмотра
Пригласить эксперта
Ответы на вопрос 1
@Crebor
var rotation = Quaternion.LookRotation (player.position - transform.position);
			rotation.x = 0.0f;//заморозка оси поворота x
			rotation.z = 0.0f;//заморозка оси поворота z
			transform.rotation = Quaternion.Slerp (transform.rotation, rotation, Time.deltaTime * 5);

Я делал так. Турель поворачивалась в сторону игрока плавно.
Ответ написан
Ваш ответ на вопрос

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

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