Version: 2019.3
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 からのものと等しくなります。