版本: Unity 6 (6000.0)
语言英语
  • C#

Mathf.Repeat

建议更改

成功!

感谢您帮助我们改进 Unity 文档的质量。虽然我们无法接受所有提交的内容,但我们确实会阅读用户提出的每个建议更改,并在适用情况下进行更新。

关闭

提交失败

由于某些原因,您的建议更改无法提交。请<a>稍后重试</a>。感谢您抽出时间帮助我们改进 Unity 文档的质量。

关闭

取消

切换到手册

声明

public static float Repeat(float t, float length);

描述

循环值 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)); } }