【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クラス見ても思いますが、ややこしいですね。