Мои Уведомления
Привет, !
Мой Аккаунт Мои Финансы Мои Подписки Мои Настройки Выход
Руководство API скрипты

Объявление

public static void InitState(int seed);

Параметры

seed Seed используется для инициализации генератора случайных чисел.

Описание

Инициализирует состояние генератора случайных чисел начальным числом.

Генератор случайных чисел не является по-настоящему случайным, он генерирует числа в заданной последовательности (значения в последовательности "прыгают" по диапазону таким образом, что в большинстве случаев они кажутся случайными).

Точка в последовательности, с которой начинается определенный набор псевдослучайных значений, выбирается с помощью целого числа, называемого начальным значением. Это предотвращает появление одного и того же набора значений каждый раз, когда вы играете в игру, и, таким образом, позволяет избежать предсказуемого игрового процесса. Иногда бывает полезно создать один и тот же набор псевдослучайных значений по запросу, установив начальное значение самостоятельно.

Вы можете задать собственное начальное число, например, при процедурном создании игрового уровня. Вы можете использовать случайно выбранные элементы, чтобы сцена выглядела произвольно и естественно, но перед генерацией установите начальное значение в предустановленное значение. Это обеспечит создание одного и того же «случайного» шаблона каждый раз, когда вы играете в игру. Часто это может быть эффективным способом уменьшить требования к хранилищу игры — вы можете генерировать столько уровней, сколько хотите процедурно, и хранить каждый из них, используя не более чем целочисленное начальное значение.

Семя инициализируется случайным образом при запуске (дополнительную информацию см. в разделе Случайное), но если вы хотите сделать его случайным позже, вы можете использовать Random.InitState((int)DateTime.Now.Ticks).

После установки начальное число не может быть получено — алгоритм псевдорандомизации сохраняет свое внутреннее состояние в виде более сложного набора чисел. Однако это состояние можно загрузить и сохранить с помощью свойства state, которое работает с непрозрачным, но сериализуемым State. .

using UnityEngine; using System.Collections; public class ExampleClass : MonoBehaviour { private float[] noiseValues; void Start() { Random.InitState(42); noiseValues = new float[10]; for (int i = 0; i < noiseValues.Length; i++) { noiseValues[i] = Random.value; Debug.Log(noiseValues[i]); } } }
Вы можете отблагодарить автора, за перевод документации на русский язык. ₽ Спасибо
API скрипты 2021.3