Unity事例ノート

UNITY

重複無しでリストからランダム抽出(シャッフル)

リストの中から、重複せずにランダムで表示させるシャッフルの仕組みを作ってみましょう。

今回の例では、5個のオブジェクトからランダムで、異なる3つを取り出します。

上部のリストからランダムで1つずつ、下のリストへ追加。

取り出したオブジェクトは上部のリストから削除し、再び選択されないようにします。

関連記事:
重複せずランダムでオブジェクトを並べる
種類の違うPrefabをランダムで出現させる
ランダム表示したPrefabを順に配列に入れる
10分の1の確率で異なるPrefabを生成

ランダムで同じオブジェクトを表示させない

Cubeを5個、空のオブジェクトを1個作成しました。

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

ShuffleList.csを記述します。

MyListを展開し、サイズに5を入力。

要素0~4の中へ、それぞれCubeオブジェクトをドラッグ&ドロップします。

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

MyListにある5個のオブジェクトから、3個を順番にランダム抽出。

取り出したオブジェクトは、MyListから削除していますので、同じものが選ばれることはありません。

関連記事:
重複せずランダムでオブジェクトを並べる
種類の違うPrefabをランダムで出現させる
ランダム表示したPrefabを順に配列に入れる
10分の1の確率で異なるPrefabを生成