Unity 6.3
0 онлайн 62 гостей 3 в системе
Вход

Mathf.Repeat

Declaration

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