循环值 t,使其永远不会大于 length,也永远不会小于 0。
这类似于模运算符,但它适用于浮点数。例如,使用 3.0 作为 t
和 2.5 作为 length
,结果将是 0.5。使用 t
= 5 和 length
= 2.5,结果将是 0.0。但是,请注意,该行为对于负数没有定义,因为它对于模运算符是定义的。
在下面的示例中,时间的值限制在 0.0 到略小于 3.0 之间。当时间值为 3 时,x 位置将回到 0,并随着时间的增加回到 3,在一个连续循环中。
using UnityEngine;
public class Example : MonoBehaviour { void Update() { // Set the x position to loop between 0 and 3 transform.position = new Vector3(Mathf.Repeat(Time.time, 3), transform.position.y, transform.position.z); } }
下面的示例显示了不同的可能输出。
using UnityEngine;
public class Example : MonoBehaviour { void Start() { // prints 4 Debug.Log(Mathf.Repeat(-1f, 5f));
// prints 0 Debug.Log(Mathf.Repeat(0f, 5f));
// prints 1 Debug.Log(Mathf.Repeat(1f, 5f));
// prints 0 Debug.Log(Mathf.Repeat(5f, 5f));
// prints 2 Debug.Log(Mathf.Repeat(12f, 5f));
// prints 1 Debug.Log(Mathf.Repeat(16f, 5f));
// prints 4 Debug.Log(Mathf.Repeat(19f, 5f)); } }