Random.Range() возвращает одно и тоже число. (unity/c#)

Почему Random.Range() возвращает одно и тоже число? Каждый раз он возвращает 0.

Instantiate(Object[Random.Range(0, 1)], new Vector2(0, 0), Quaternion.identity);  

Ответы (2 шт):

Автор решения: vp_arth

Чтобы получать случайные нули и единицы, нужно вызывать:

Random.Range(0, 2) // integers in range [0, 2)

В целочисленной перегрузке Random.Range max исключается:

public static int Range(int min, int max);

Description:
Return a random integer number between min [inclusive] and max [exclusive]

Note max is exclusive. Random.Range(0, 10) can return a value between 0 and 9. Return min if max equals min.

Документация

Описание:
Возвращает случайное целое число между min [включительно] и max [исключительно]

Внимание: max не включается. Random.Range(0, 10) может возвращать значения от 0 до 9. Возвращает min, если max равен min.

Итак, Вам нужен Random.Range(0, 2)


Перегрузка для действительных чисел, напротив, включает оба конца интервала.

→ Ссылка
Автор решения: AC Studio

Дополню, если нужно от 0.5f и до 4 то вот вам пример.

Random.Range(.05f,4);
→ Ссылка