与 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); } }