Объявление
public static float Range(float minInclusive, float maxInclusive);Описание
Возвращает случайное float
в пределах [minInclusive..maxInclusive]
(диапазон включительно).
Если minInclusive
больше, чем maxInclusive
, числа автоматически меняются местами.
Важно. И нижняя, и верхняя границы являются включительными. Любое заданное значение с плавающей запятой между ними, включая как minInclusive, так и maxInclusive, будет появляться в среднем примерно один раз на каждые десять миллионов случайных выборок.
Существует перегруженная версия int
этой функции, которая работает несколько иначе, особенно в отношении максимального диапазона. См. его документы ниже.
Подробнее об алгоритме и примерах того, как UnityEngine.Random
может отличаться от другого случайного числа, см. в разделе Random. генераторы.
using UnityEngine;
public class ExampleClass : MonoBehaviour
{
public GameObject prefab;
// Нажмите «Создать экземпляр!» кнопка и будет создан новый `префаб`
// где-то в пределах -10.0 и 10.0 (включительно) в плоскости x-z
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);
}
}
}
Объявление
public static int Range(int minInclusive, int maxExclusive);Описание
Возвращает случайное int
в пределах [minInclusive..maxExclusive)
(только для чтения).
Этот метод будет вести себя следующим образом:
maxExcusive
является эксклюзивным, поэтому, например,Random.Range(0, 10)
вернет значение от 0 до 9. , каждый с примерно равной вероятностью.- Если
minInclusive
иmaxExclusive
равны, то "эксклюзивное правило" игнорируется иminInclusive
будет возвращен. - Если
minInclusive
больше, чемmaxExclusive
, числа автоматически меняются местами.
Существует перегрузка этой функции float
, которая работает несколько иначе, особенно в отношении максимального диапазона. См. его документы выше.
Подробнее об алгоритме и примерах того, как UnityEngine.Random
может отличаться от другого случайного числа, см. в разделе Random. генераторы.
using UnityEngine;
public class ExampleClass : MonoBehaviour
{
public GameObject prefab;
public float zoffset = 10;
// Нажмите «Создать экземпляр!» кнопка и новая сетка `префабов` объектов будет
// создается со случайным количеством элементов в каждом направлении.
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;
}
}
}