Unity3D で乱数を生成する
このチュートリアルでは、unity3d で乱数を生成する方法について説明します。 float と int の戻り値の型を持つ乱数ジェネレーターを実装し、例を使用して実行動作を調べます。
Unity3D の乱数ジェネレーター
UnityEngine.Random は乱数を生成する組み込みメソッド Range() を提供します。 残念ながら、Unity3d では Range() メソッドは int と float の両方のデータ型に対してオーバーロードされています。
float または int データ型をパラメーターとして渡すことで、このメソッドを呼び出すことができます。 この関数のパラメーターは、下限と上限を指定して乱数の範囲を定義します。
float 戻り型の UnityEngine.Random.Range 関数の定義は次のとおりです。
public static float Range(float minValue, float maxValue);
Range() メソッドは、[minValue to maxValue] 内の乱数 float を返します。 maxValue が minValue より小さい場合、このメソッドは値を交換します。
float Range() メソッドには下限と上限が含まれます。 たとえば、Random.Range(1.2f,5.2f) は、極端な値を含め、1.2 から 5.2 までの数値を返します。
int 戻り型の UnityEngine.Random.Range 関数の定義は次のとおりです。
public static int Range(int minValue, int maxValue);
このメソッドは、[minValue to maxValue] の範囲内のランダムな整数を返します。 次の動作は、このメソッドの実行方法です。
- このメソッドには上限は含まれません。 たとえば、
Random.Range(-5, 5)は-5と4の間の値を返します。 minValueとmaxValueの両方が等しい場合、上限は除外され、メソッドは下限、つまりminValueを返します。maxValueがminValueより小さい場合、数値は自動的に交換されます。
これらのメソッドの両方を Unity3D プロジェクトに実装します。 以下は、これらの関数を実装する完全なデモンストレーションです。 しかし、まず、プロセスを順を追って見ていきましょう。
-
新しいプロジェクトを作成
新しい Unity プロジェクトを作成します。 デフォルトでサンプルシーンが作成されます。
-
3D ゲーム オブジェクトの作成
ヒエラルキー ウィンドウを右クリックして、シーン内に任意の 3D ゲーム オブジェクトを作成します。

-
float乱数ジェネレーターを生成する C# スクリプトの作成プロジェクト ウィンドウで右クリックして、新しい C# スクリプトを作成します。 次に、新しく作成したスクリプトに次のコード スニペットを記述します。

次のコード スニペットは、
float乱数ジェネレーターを示しています。 このコード スニペットは、-5.0と5.0の範囲内で生成された乱数を追加することにより、gameObjectをx 方向に移動します。using System.Collections; using System.Collections.Generic; using UnityEngine; public class RandomNumberGenerator : MonoBehaviour { public GameObject gameObject; float xOffset = 0.0f; void OnGUI() { xOffset = Random.Range(-5.0f, 5.0f); if (GUI.Button(new Rect(10, 300, 100, 50), "MOVE")) { gameObject.transform.position = new Vector3(gameObject.transform.position.x + xOffset, gameObject.transform.position.y, gameObject.transform.position.z); } } } -
スクリプトをゲームオブジェクトにアタッチ
シーンで作成されたゲーム オブジェクトにスクリプトをアタッチします。 次に、ゲーム オブジェクトを階層からドラッグしてスクリプトに渡します。

-
ゲームを実行
ゲームを実行し、Game View の
Moveボタンを押して、ゲーム オブジェクトの位置を変更します。 -
空のゲームオブジェクトを作成
シーンに空のゲーム オブジェクトを作成して、整数型の乱数ジェネレーターを実装します。

-
int乱数ジェネレーターを生成する新しい C# スクリプトの作成新しい C# スクリプトを再度作成し、スクリプトに次のコードを記述します。 このコード フェンスは、
1と4(整数) の間の乱数を生成し、0を含む降順の値を出力します。using System.Collections; using System.Collections.Generic; using UnityEngine; public class IntRNG : MonoBehaviour { void Start() { int x = Random.Range(1, 5); for (int i = x; i >= 0; i--) { print(i); } } } -
スクリプトを空のオブジェクトにアタッチ
上記のスクリプトを、シーンで作成された空のゲーム オブジェクトにアタッチします。

-
ゲームを実行
ゲームを実行し、コンソール ウィンドウをチェックして出力を確認します。 詳細については、Unity3D 乱数ジェネレーター を参照してください。