AppSeedのアプリ開発ブログ

アプリ開発会社AppSeed(アップシード)開発担当のブログです。iOS、Android、Unity、Cocos2d-xなどアプリ開発関連のTipsや備忘録、アプリ開発に役立つ情報を発信します。

【Unity】ランダムな値を生成する方法と、UnityEngine.RandomとSystem.Randomの競合について(C#)

https://unity3d.com/files/images/ogimg.jpg?1


Unityでランダムな値を生成する方法に関するメモ。

ランダムな値を生成したい場合はUnityEngine.Random.Rangeを使用します。

using UnityEngine;

int v = Random.Range(0,100);

上記の例だと、0以上100未満(99まで)の値の中からランダムで値を生成します。
第2引数の値はランダムな値に含まないのがポイントです。(上記だと100は含まない。第2引数-1までが範囲)

docs.unity3d.com


UnityEngine.RandomとSystem.Randomの競合について


ランダムな値を生成する際に使う「UnityEngine.Random.Range」ですが、
下記のような状況で「Randam.Range」を記述すると、UnityEngine.RandomとSystem.Randomが競合してしまい、エラーが出る事がありました。

using UnityEngine;
using System;

int v = Random.Range(0,100);//エラー


調べてみると、C#には「System.Random」のクラスがあるようです。

docs.microsoft.com


なので、UnityEngine.RandomとSystem.Randomで競合が発生してしまう場合は以下のように「UnityEngine.Random.Range」とするとエラーが解消されます。

using UnityEngine;
using System;

int v =  UnityEngine.Random.Range(0,100);