Mathf.MoveTowardsAngle
Declaration
public static float MoveTowardsAngle(float current, float target, float maxDelta);Описание
То же самое, что и MoveTowards, но обеспечивает правильную интерполяцию значений, когда они обворачиваются на 360 градусов.
Переменные current и target предполагаются в градусах. По причинам оптимизации, отрицательные значения maxDelta не поддерживаются и могут вызвать колебания. Чтобы отодвинуть current от целевого угла, добавьте 180 к этому углу.
using UnityEngine;
public class Example : MonoBehaviour { float target = 270.0f; float speed = 45.0f;
void Update() { float angle = Mathf.MoveTowardsAngle(transform.eulerAngles.y, target, speed * Time.deltaTime); transform.eulerAngles = new Vector3(0, angle, 0); } }