Mathf.MoveTowardsAngle

Switch to Manual
public static float MoveTowardsAngle (float current, float target, float maxDelta);

Description

MoveTowards 相同,但是在值环绕 360 度时确保值正确插入。

假设变量 currenttarget 以度为单位。 出于优化原因,负值的 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); } }