7
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【Unity】Randomまとめ

Posted at

#はじめに
ゲーム製作においてRandomを使用する場面は多いと思います。
備忘録としてRandomクラスをまとめてみました。
なお、本記事ではUnityEngine.Randomについて記載しています(System.Randomではない)。

#Static Properties

###insideUnitCircle
半径1の円の内部の点をランダムに返す。
円形上にランダムに敵を出現させたい場合などに使用。
image.png

###insideUnitSphere
半径1の球体の内部の点をランダムに返す。
球体内部全てなので、浮いてるオブジェクトなどにも使用可能。
スクリーンショット 2020-10-19 22.12.18.png

###onUnitSphere
半径1の球体の表面上の点をランダムで返す。
スクリーンショット 2020-10-19 22.14.24.png

###rotation
ランダムなQuaternionを返す。
スクリーンショット 2020-10-19 22.16.37.png

###rotationUniform
一様な分布でランダムにQuaternionを返す。
Random.rotationでは完全なランダムではないみたいです。ただ計算コストはこちらの方が高い。

###state
乱数生成器の内部状態のすべてを取得、または、設定する。
適当なタイミングでアプリを落としても、再度起動したときに続きからできるようにするために乱数を保存する。

###value
0.0と 1.0の範囲のランダムな数を返す。
0.0と1.0も含むことに注意。汎用性が高く、Randomクラスのプロパティで基本的に使うのはこれ。

#Static Methods

###ColorHSV
HSVでアルファ値(透明度)をもつランダムなColorを返す。
パラメータで色相(hueMin,hueMax)、彩度(saturationMin,saturationMax)、明度(valueMin,valueMax)、アルファ値(透明度:alphaMin,alphaMax)を設定可能。
スクリーンショット 2020-10-19 22.51.41.png

###InitState
シード値を指定し、ランダム数生成器の状態を初期化する。
システム時刻等で決定されるシード値を指定することで、同じ乱数の値を生成することができる。
シード値による擬似乱数については、以下の記事がわかりやすいです。
コンピューターの「ランダム」は本当にランダムなのか?

###Range
範囲を指定できる、Random.value
intで設定するか、floatで設定するかによって、戻り値の範囲に差がある点に注意。

#####int設定

\text{min}\leqq \text{return} < max

#####float設定

\text{min}\leqq \text{return} \leqq max

#まとめ

  • Randomクラスは様々な乱数を生成するクラス。
  • Random.valueRandom.Rangeの使用頻度が圧倒的に高い。
  • Random.rotationRandom.rotationUniformの違いは後日検証したい...
7
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?