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

Mathf.Clamp

Declaration

public static float Clamp(float value, float min, float max);

Параметры

Параметр Описание
значение Значение с плавающей запятой, которое будет ограничено в диапазоне, определенном минимальными и максимальными значениями.
мин. Минимальное значение с плавающей запятой для сравнения.
макс. Максимальное значение с плавающей запятой для сравнения.

Возвращаемое значение

поплавок Результат с плавающей запятой между минимальными и максимальными значениями.

Описание

Зажимает заданные значения между заданными минимальными и максимальными значениями. Возвращает заданные значения, если они находятся в диапазоне минимальных и максимальных значений.

Возвращает минимальное значение, если заданное значение с плавающей запятой меньше минимального. Возвращает максимальное значение, если заданное значение больше максимального. Используйте Clamp для ограничения значения диапазоном, который определяется минимальными и максимальными значениями.
Возвращает неопределенное значение, если минимальное значение больше максимального.

using UnityEngine;

// Mathf.Clamp example. // // Animate a cube along the x-axis using a sine wave. // Let the minimum and maximum positions on the x-axis // be changed. The cube will be visible inside the // minimum and maximum values.

public class ExampleScript : MonoBehaviour { private float xMin = -0.5f, xMax = 0.5f; private float timeValue = 0.0f;

void Update() { // Compute the sin position. float xValue = Mathf.Sin(timeValue * 5.0f);

// Now compute the Clamp value. float xPos = Mathf.Clamp(xValue, xMin, xMax);

// Update the position of the cube. transform.position = new Vector3(xPos, 0.0f, 0.0f);

// Increase animation time. timeValue = timeValue + Time.deltaTime;

// Reset the animation time if it is greater than the planned time. if (xValue > Mathf.PI * 2.0f) { timeValue = 0.0f; } }

void OnGUI() { // Let the minimum and maximum values be changed xMin = GUI.HorizontalSlider(new Rect(25, 25, 100, 30), xMin, -1.0f, +1.0f); xMax = GUI.HorizontalSlider(new Rect(25, 60, 100, 30), xMax, -1.0f, +1.0f);

// xMin is kept less-than or equal to xMax. if (xMin > xMax) { xMin = xMax; }

// Display the xMin and xMax value with better size labels. GUIStyle fontSize = new GUIStyle(GUI.skin.GetStyle("label")); fontSize.fontSize = 24;

GUI.Label(new Rect(135, 10, 150, 30), "xMin: " + xMin.ToString("f2"), fontSize); GUI.Label(new Rect(135, 45, 150, 30), "xMax: " + xMax.ToString("f2"), fontSize); } }

Declaration

public static int Clamp(int value, int min, int max);

Параметры

Параметр Описание
значение Целое значение точки, ограничивающее диапазон от мин. до макс.
мин. Минимальное целое значение точки для сравнения.
макс. Максимальное целое значение точки для сравнения.

Возвращаемое значение

инт Результат int между значениями min и max.

Описание

Вставляет заданные значения в диапазон, определенный заданными минимальными и максимальными целыми значениями. Возвращает заданные значения, если они находятся в пределах min и max.

Возвращает значение min, если заданное значение меньше значения min. Возвращает значение max, если заданное значение больше значения max. Параметры min и max включены. Например, Clamp(10, 0, 5) возвращает максимальный аргумент 5, а не 4.

using UnityEngine;

// Mathf.Clamp integer example. // // Add or subtract values from health. // Keep health between 1 and 100. Start at 17.

public class ExampleScript : MonoBehaviour { public int health = 17; private int[] healthUp = new int[] {25, 10, 5, 1}; private int[] healthDown = new int[] {-10, -5, -2, -1};

// Width and height for the buttons. private int xButton = 75; private int yButton = 50;

// Place of the top left button. private int xPos1 = 50, yPos1 = 100; private int xPos2 = 125, yPos2 = 100;

void OnGUI() { GUI.skin.label.fontSize = 20; GUI.skin.button.fontSize = 20;

// Generate and show positive buttons. for (int i = 0; i < healthUp.Length; i++) { if (GUI.Button(new Rect(xPos1, yPos1 + i * yButton, xButton, yButton), healthUp[i].ToString())) { health += healthUp[i]; } }

// Generate and show negative buttons. for (int i = 0; i < healthDown.Length; i++) { if (GUI.Button(new Rect(xPos2, yPos2 + i * yButton, xButton, yButton), healthDown[i].ToString())) { health += healthDown[i]; } }

// Show health between 1 and 100. health = Mathf.Clamp(health, 1, 100); GUI.Label(new Rect(xPos1, xPos1, 2 * xButton, yButton), "Health: " + health.ToString("D3")); } }