对值 t 进行循环,使它不会大于长度,并且不会小于 0。
这类似于取模运算符,但是它适用于浮点数。例如,将 3.0 用于 t
并将 2.5 用于 t
,结果是 0.5。而当 t
= 5 并且 length
= 2.5 时,结果是 0.0。但是请注意,与取模运算符一样,没有为负数定义行为。
In the example below, the value of time is restricted between 0.0 and just under 3.0. When the value of time is 3, the x position will go back to 0, and go back to 3 as time increases, in a continuous loop.
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); } }
The example below shows different possible outputs.
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)); } }