乱数を生成する初期値を設定します
乱数生成は真にランダムでなく事前に決まった順番で番号を生成します(値の順番はほとんどの場合に問題ない形の乱数となります)。
乱数の値の選択は シード と呼ばれる値で選択されます。関数が使用される前のシステム時刻など任意の値からセットされます。これによりゲームが再生される度に同じ値が実行されて毎回同じゲームプレイとなることを避けます。しかし自身でシードをセットすることで同じ乱数の値を生成することが役に立つ場合もあります。
自身でシードをセットするのは例えば、ゲームレベルをプロシージャル生成する場合などです。乱数で選ばれた要素を使用することでシーンが任意で自然に見えるようになり、生成前にシードを事前にセットした値とすることができます。これによりゲームが再生されるたびに同じ "ランダム" パターンが生成できます。これはゲームのストレージ要件を削減できます。任意でレベルを生成することができて、整数のシード値を使用してプロシージャルにレベルを好きなだけ生成できます。
private var noiseValues: float[];
function Start () { // If you comment out the following line, the sequence of random // values will be different each time you run. However, the sequence // will always be the same for any particular seed value. Random.seed = 42; noiseValues = new float[10]; for (var i = 0; i < noiseValues.Length; i++) { noiseValues[i] = Random.value; print(noiseValues[i]); } }
using UnityEngine; using System.Collections;
public class ExampleClass : MonoBehaviour { private float[] noiseValues; void Start() { Random.seed = 42; noiseValues = new float[10]; int i = 0; while (i < noiseValues.Length) { noiseValues[i] = Random.value; print(noiseValues[i]); i++; } } }