【Unity】Randomまとめ
はじめに
ゲーム製作においてRandomを使用する場面は多いと思います。
備忘録としてRandomクラスをまとめてみました。
なお、本記事ではUnityEngine.Random
について記載しています(System.Random
ではない)。
Static Properties
insideUnitCircle
半径1の円の内部の点をランダムに返す。
円形上にランダムに敵を出現させたい場合などに使用。
insideUnitSphere
半径1の球体の内部の点をランダムに返す。
球体内部全てなので、浮いてるオブジェクトなどにも使用可能。
onUnitSphere
rotation
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)を設定可能。
InitState
シード値を指定し、ランダム数生成器の状態を初期化する。
システム時刻等で決定されるシード値を指定することで、同じ乱数の値を生成することができる。
シード値による擬似乱数については、以下の記事がわかりやすいです。
コンピューターの「ランダム」は本当にランダムなのか?
Range
範囲を指定できる、Random.value
。
intで設定するか、floatで設定するかによって、戻り値の範囲に差がある点に注意。
int設定
\text{min}\leqq \text{return} < max
float設定
\text{min}\leqq \text{return} \leqq max
まとめ
- Randomクラスは様々な乱数を生成するクラス。
-
Random.value
とRandom.Range
の使用頻度が圧倒的に高い。
-
Random.rotation
とRandom.rotationUniform
の違いは後日検証したい...
Random.value
とRandom.Range
の使用頻度が圧倒的に高い。Random.rotation
とRandom.rotationUniform
の違いは後日検証したい...Author And Source
この問題について(【Unity】Randomまとめ), 我々は、より多くの情報をここで見つけました https://qiita.com/TANUKEINA/items/2c97935b6b309d574958著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .