Unity事例ノート

UNITY

10分の1の確率で異なるPrefabを生成

Prefab生成をくり返す中で、10分の1の確率で、種類の異なるPrefabを生成できるようにスクリプトを作成してみましょう。

通常ブルーのボールを1秒おきに出現させますが、10分の1の確率で、赤ボールが出てきます。

0~9のランダム数値を取得し、その中の1つに数字が該当すれば、ボールを切り替えるようにします。

関連記事:
重複無しでリストからランダム抽出(シャッフル)
重複せずランダムでオブジェクトを並べる
種類の違うPrefabをランダムで出現させる
ランダム表示したPrefabを順に配列に入れる
百の単位でランダム数値を取得

ランダム数値の中から1つを指定

Sphereを作成して、名前をSphereBlueに変更。

リジッドボディを追加して、マテリアルで青色をつけます。

もう一つSphereを作成して、名前をSphereRedに変更。

リジッドボディを追加して、マテリアルで赤色をつけます。

2つのSphereをプロジェクトビューにドラッグ&ドロップして、Prefab化します。

2つのSphereの元データは削除しておきます。

空のオブジェクトを作成。

BallDrop.csを作成し、GameObject(空のオブジェクト)に追加します。

BallDrop.csを記述します。

Random.Rangeで整数を扱う場合、(0, 10)と書けば0~9の乱数を算出しするので注意しましょう。

要素数のフィールドに2を入力。

要素0、1にそれぞれ、SphereRed、SphereBlueを入れます。

ゲームプレイしてみましょう。

1秒おきにボールが生成されて、10分の1の確率で、赤ボールが出てきます。

関連記事:
重複無しでリストからランダム抽出(シャッフル)
重複せずランダムでオブジェクトを並べる
種類の違うPrefabをランダムで出現させる
ランダム表示したPrefabを順に配列に入れる
百の単位でランダム数値を取得