Gets/Sets the full internal state of the random number generator.
This property is usually used to save and restore a previously saved state of the random number generator (RNG). The RNG state can also be initialized with a seed using the Random.InitState function, but the effect is quite different, as shown in the following example.
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))); } }
After running this script we will observe that the random values from step 5 and 6 will be equal to those from step 3 and 4 because the internal state of the RNG was restored by using Random.state property. Also, the random values from step 7 and 8 will be equal to the ones from step 1 and 2 because Random.InitState reinitializes the state of the RNG with the initial seed.