Как сделать поворот объекта в сторону другого объекта в Unity (2D)?

У меня 2D поле, на котором игрок и враг. Нужно, чтобы враг медленно повернулся в сторону игрока ( по возможности с использованием Rigidbody2D.AddTorque ). Как это можно реализовать?
float rotation = ???;
rigidbody2d.AddTorque(rotation * Time.deltaTime * rotation_speed);


Отредактировано: нашёл такой вариант, враг делает что-то похожее на поворот игроку, но как-то очень странно
void LookAt(Vector3 point)
    {
        float scalar = point.x * transform.position.x + point.y * transform.position.y;
        float m1 = Mathf.Sqrt(point.x * point.x + point.y * point.y);
        float m2 = Mathf.Sqrt(transform.position.x * transform.position.x + transform.position.y * transform.position.y);
        transform.rotation = Quaternion.Euler(transform.rotation.eulerAngles.x, transform.rotation.eulerAngles.y, scalar / (m1 * m2) * 360);
    }
  • Вопрос задан
  • 5117 просмотров
Решения вопроса 1
@Yarru Автор вопроса
Нашёл ответ на другом сайте
transform.rotation = Quaternion.Euler(transform.rotation.eulerAngles.x, transform.rotation.eulerAngles.y, Mathf.Atan2(point.y - transform.position.y, point.x - transform.position.x) * Mathf.Rad2Deg - 90);
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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