У меня есть игрок в нижней части экрана и враг в верхней части экрана. Я хочу, чтобы они оба постоянно вращались друг к другу. Вот мой код, как:Игрок и враг 2D-автоматическое вращение
void Update()
{
Vector3 diff = target.position - transform.position;
diff.Normalize();
float zRotation = Mathf.Atan2(diff.y, diff.x) * Mathf.Rad2Deg;
Vector3 lookDirection = new Vector3(0, 0, zRotation - 90);
transform.rotation = Quaternion.Euler(lookDirection);
}
Учитывая это состояние, игрок ведет себя, как и ожидалось, но противник всегда поворачивается в сторону от игрока, а это означает, что он смотрит вверх, а не вниз на котором игрок.
Если я переключил diff
вектор, как это:
Vector3 diff = transform.position - target.position;
Тогда это игрок, который смотрит в сторону от противника. Оба спрайта имеют 0 значений для вращения и масштабирования в редакторе.
Что здесь не так?
Это не работает в 2D. Я только хочу повернуть на Z-оси. – Abdou023
Так измените значения цели на 0 на x и y – Maakep
Вы пытались использовать функцию в 2D? Можете ли вы заставить его работать, используя мой код выше? – Abdou023