Unity事例ノート

UNITY

シャッフル - 重複なしでオブジェクトを並べる

ランダムで出した数の中で、一度使った数を除外することで、重複無しの結果を導き出しましょう。

実行するたびに、5つのオブジェクトがランダムで積み上がりますが、同じCubeは存在しません。

このように、オブジェクトをシャッフルして配置できる仕組みを作ります。

関連記事:
数字をシャッフルする
シャッフル - 重複せずにランダム抽出
種類の違うPrefabをランダムで出現させる
ランダム表示したPrefabを順に配列に入れる
10分の1の確率で異なるPrefabを生成
配列内のオブジェクトを等間隔に並べる
重複せずに一つずつランダム出力(シャッフル)

重複した数値をリストから除外

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

Cubeを作成して、名前をCube1に変更。

Cube1を複製して、Cube2~4も作成します。

わかりやすいように、Cube1~5に色をつけます。

Cube1~5をプロジェクトビューにドラッグ&ドロップして、Prefab化します。

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

ObjScript.csを作成し、GameObjectに追加します。

MyArrayの要素の中に、Cube1~5を入れます。

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

スタートするたびに、Cubeの種類がランダムで変わりますが、同じ種類のCubeは存在しません。

myArray(配列)の中に、あらかじめ5個のCubeを登録。

foreace文を使って、5個すべてのCubeを、myList(リスト)に追加。

リストは、要素を消し込んでいけるため、一度ランダムで出力したものは、都度リストから除外しています。

関連記事:
数字をシャッフルする
シャッフル - 重複せずにランダム抽出
種類の違うPrefabをランダムで出現させる
ランダム表示したPrefabを順に配列に入れる
10分の1の確率で異なるPrefabを生成
配列内のオブジェクトを等間隔に並べる
重複せずに一つずつランダム出力(シャッフル)

SCHOOL教室案内