Random.Range
Declaration
public static float Range(float minInclusive, float maxInclusive);Описание
Возвращает случайное float в [minInclusive..maxInclusive] (диапазон включает).
Если minInclusive больше, чем maxInclusive, то числа автоматически поменяются местами.
Важно: Нижняя и верхняя границы равны и. Любое данное значение с плавающей запятой между ними, , включая minInclusive и maxInclusive, появится в среднем примерно раз в десять миллионов случайных выборок.
Существует перегрузка int этой функции, которая работает немного по-другому, особенно в отношении максимального диапазона. См. документацию ниже.
См. Random для подробностей об алгоритме и примеров того, как UnityEngine.Random может отличаться от других генераторов случайных чисел.
using UnityEngine;
public class ExampleClass : MonoBehaviour { public GameObject prefab;
// Click the "Instantiate!" button and a new `prefab` will be instantiated // somewhere within -10.0 and 10.0 (inclusive) on the x-z plane void OnGUI() { if (GUI.Button(new Rect(10, 10, 100, 50), "Instantiate!")) { var position = new Vector3(Random.Range(-10.0f, 10.0f), 0, Random.Range(-10.0f, 10.0f)); Instantiate(prefab, position, Quaternion.identity); } } }
Declaration
public static int Range(int minInclusive, int maxExclusive);Описание
Возвращает случайное int в [minInclusive..maxExclusive) (только для чтения).
Максимальный параметр является эксклюзивным, так что, например, Random.Range(0, 10) возвращает значение между 0 и 9, каждое с приблизительно равной вероятностью.
Если minInclusive и maxExclusive равны, метод возвращает minInclusive.
Если minInclusive больше maxExclusive, входные параметры обмениваются, но сохраняют свою инклюзивность или эксклюзивность на основе их первоначальных позиций, что означает, что метод становится Random.Range(minExclusive, maxInclusive) после обмена.
Например, вызов Random.Range(10, 0) не эквивалентен Random.Range(0, 10). Random.Range(10, 0) возвращает значение между 1 и 10, потому что 10 становится инклюзивным максимумом, а 0 становится эксклюзивным минимумом.
Существует перегрузка float этой функции, которая работает немного по-другому, особенно в отношении максимального диапазона, см. ее документацию выше.
См. Random для подробностей об алгоритме, и для примеров того, как UnityEngine.Random может отличаться от других генераторов случайных чисел.
using UnityEngine;
public class ExampleClass : MonoBehaviour { public GameObject prefab; public float zoffset = 10;
// Click the "Instantiate!" button and a new grid of `prefab` objects will be // instantiated with a random number of items in each direction. void OnGUI() { if (GUI.Button(new Rect(10, 10, 100, 50), "Instantiate!")) { // the grid will always be 1, 2, 3, 4, or 5 prefabs wide int xcount = Random.Range(1, 6); // the grid will always be 2, 3, or 4 prefabs long int ycount = Random.Range(2, 5);
for (int x = 0; x != xcount; ++x) { for (int y = 0; y != ycount; ++y) { var position = new Vector3(x * 2, zoffset, y * 2); Instantiate(prefab, position, Quaternion.identity); } }
zoffset += 2; } } }