0~9の数字を、シャッフル(重複なしのランダム抽出)できるように、スクリプトを作成しましょう。
このように、リスト内にシャッフルされた数字が並びます。
コンソールにも、カンマ区切りで表示させます。
関連記事:
シャッフル - 重複せずにランダム抽出
シャッフル - 重複なしでオブジェクトを並べる
重複せずに一つずつランダム出力(シャッフル)
シャッフルした数字を表示する
空のオブジェクトを作成します。
ShuffleScript.csを作成し、GameObject(空のオブジェクト)に追加します。
ShuffleScript.csを記述します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
using System.Collections; using System.Collections.Generic; using UnityEngine; public class ShuffleScript : MonoBehaviour { public List<int> myList; public List<int> useList = new List<int>(); private int randomNum; private int choiceNum; void Start() { for(int i=0; i<10; i++) { myList.Add(i); } for(int j=0; j<10; j++) { //myListの中からランダムで1つを選ぶ randomNum = myList[Random.Range(0, myList.Count)]; //選んだ数字をuseListに追加 useList.Add(randomNum); //選んだ数字のリスト番号をmyListから取得 choiceNum = myList.IndexOf(randomNum); //選んだリスト番号をmyListから削除 myList.RemoveAt(choiceNum); Debug.Log(string.Join(",", useList)); } } } |
ゲームプレイしてみましょう。
シャッフルされた0~9の数字が、useListの中に確認できます。
リストの中の数字は、カンマ区切りで、コンソールにも表示しました。
まずはじめに、myListの中に0~9の数字が入ります。
そのmyListの中からランダムで1つを選び、useListに追加。
重複を防ぐために、選んだ数字のリスト番号を、myListから削除します。
このような手順で、useListの中にシャッフルした数字が並びます。
関連記事:
シャッフル - 重複せずにランダム抽出
シャッフル - 重複なしでオブジェクトを並べる
重複せずに一つずつランダム出力(シャッフル)