Version: 5.4
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))); } }

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