获取/设置随机数生成器的完整内部状态。
此属性通常用于保存随机数生成器 (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 的状态。