乱数生成器の内部状態のすべてを取得、または、設定します。
このプロパティーは通常、乱数生成器 (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))); } }
このスクリプトを実行した後、step 5 と 6 からの乱数値は step 3 と 4 からの乱数値と同じになるという状況が見られます。なぜなら、RNG の内部の状態が Random.state プロパティーの仕様によって復元されてしまうからです。 また、Random.InitState が RNG の状態を最初のシード値で再度イニシアライズするため、step 7 と 8 からの乱数値は step 1 と 2 からのものと等しくなります。