Unity事例ノート

UNITY

種類の違うPrefabをランダムで出現させる

プレハブを繰り返し出現させるというよりも、異なるプレハブを順番に出現させたいといったシーンも多いのではないでしょうか。

種類の違うPrefabをランダムで出して、左から右へ順番に移動させるプログラムを作ってみました。

関連記事:
重複せずランダムでオブジェクトを並べる
重複無しでリストからランダム抽出(シャッフル)
ランダム表示したPrefabを順に配列に入れる
10分の1の確率で異なるPrefabを生成

移動のスクリプトを作成

Cube1とCube2を作成します。

それぞれ別のマテリアルをつけています。

CubeMove.csを作成して、Cube1とCube2に追加しましょう。

CubeMove.csを書きます。

ここでゲームプレイして動きを確認しましょう。

Cubeがずっと動いていって、Xが10のところで消えます。

ランダム出現のスクリプト

Cube1、Cube2をそれぞれPrefab化しましょう。

Cube1とCube2の元データは削除しておきます。

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

GameObjectの名前で空のオブジェクトができました。

GameManager.csを作成して、GameObjectに追加しましょう。

GameManager.csを編集します。

GameManagerのインスペクターを確認します。

CubePrefabのフィールド内、サイズには2を入力します。

要素が2つ表示されるので、ここにはCube1とCube2を入れましょう。

Random.Rangeの値が整数の場合、最大値はその整数を含めません。

CubePrefabs.Lengthは整数なので2-1=1ということになり、要素0と要素1のどちらかがランダム出現します。

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

1秒おきにランダムで、左から右へプレハブが移動していくのが確認できます。

関連記事:
重複せずランダムでオブジェクトを並べる
重複無しでリストからランダム抽出(シャッフル)
ランダム表示したPrefabを順に配列に入れる
10分の1の確率で異なるPrefabを生成