Задать вопрос
@Wadim_wadim2000

Unity — как сделать равномерный поворот в сторону курсора?

У меня есть скрипт для 2д игры, и это часть скрипта отвечает за поворот башни танка:
Quaternion TurretRotation()
	{
		Vector3 mouse = Input.mousePosition;
		mouse.z = Camera.main.transform.position.z;
		Vector3 direction = Camera.main.ScreenToWorldPoint(mouse) - transform.position;
		float angle = Mathf.Atan2(direction.y, direction.x) * Mathf.Rad2Deg;
		return Quaternion.AngleAxis(angle, Vector3.forward);
	}

почему, чем ближе она поворачивается до нужной точки, тем медленнее она это делает? Как исправить?
  • Вопрос задан
  • 492 просмотра
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • OTUS
    C# Developer. Professional
    6 месяцев
    Далее
  • Ulearn.me
    Основы программирования на примере C#. Часть 1
    1 неделя
    Далее
  • Ulearn.me
    Основы программирования на примере C#. Часть 2
    1 неделя
    Далее
Пригласить эксперта
Ответы на вопрос 1
@BrightOnX
попробуй этот код
сам недавно открыл для себя повороты, может быть поможет
Vector3 difference = Camera.main.ScreenToWorldPoint(Input.mousePosition) - transform.position;

         difference.Normalize();

         float rotationZ = Mathf.Atan2(difference.y, difference.x) * Mathf.Rad2Deg;

         transform.rotation = Quaternion.Euler(0f, 0f, rotationZ);
Ответ написан
Ваш ответ на вопрос

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

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