読者です 読者をやめる 読者になる 読者になる

【Unity】乱数を生成する

ゲームでは定番の乱数を使う必要が出てきたので、『C# 乱数』で検索した結果を試してみたところ、RandomってクラスにNextなんてメソッドは無いぞ!って怒られました。
はて一体なんじゃと思っていたら、C#ではなくUnityの独自クラスとして、Randomが定義されているみたいです。
元々試そうとしていた、C#標準で使うRandomが使えなかったのは、

using System;

をしていなかったからみたいですが、Unity側で利用できる乱数クラスがあるのだから、そっちを使うべきなんでしょう。

今回は範囲指定した乱数が欲しかったので、Rangeを使いました。

//整数の乱数を返す
int iRandNum = Random.Range(0, 4);
//実数の乱数を返す
float fRandNum = Random.Range(-1.5f, 1.5f);
//iRandNum => 0, 1, 2, 3
//fRandNum => -1.5 ~ 1.5

int型での呼び出しと、float型での呼び出しでは、引数で指定した最大値を含むかどうかの扱いが異なるので、注意が必要です。
int型の場合は、最大値は含まないようです。
この辺りの仕様って、どの言語のRandomクラス見ても思いますが、ややこしいですね。

参考
Unity Script Reference: