Version: 2017.2
public static Random.State state ;

描述

获取/设置随机数生成器的完整内部状态。

此属性通常用于保存随机数生成器 (RNG) 的状态以及还原以前保存的状态。 RNG 状态还可以使用 Random.InitState 函数,通过种子进行初始化,但是效果大不一样,如以下示例所示。

using UnityEngine;
using System.Collections;

public class ExampleClass : MonoBehaviour { void Start() { Random.InitState(255);

PrintRandom("Step 1"); PrintRandom("Step 2");

Random.State oldState = Random.state;

PrintRandom("Step 3"); PrintRandom("Step 4");

Random.state = oldState;

PrintRandom("Step 5"); PrintRandom("Step 6");

Random.InitState(255);

PrintRandom("Step 7"); PrintRandom("Step 8"); }

void PrintRandom(string label) { Debug.Log(string.Format("{0} - RandomValue {1}", label, Random.Range(1, 100))); } }

运行此脚本之后,我们会观察到,来自步骤 5 和 6 的随机值等于来自步骤 3 和 4 的随机值,因为 RNG 的内部状态使用 Random.state 属性进行了还原。 此外,来自步骤 7 和 8 的随机值等于来自步骤 1 和 2 的随机值,因为 Random.InitState 使用初始种子重新初始化 RNG 的状态。