0 ~ maxCount까지의 숫자 중 겹치지 않는 n개의 난수를 생성하는 RandomNumbers() 메소드 정의

개념 참고 영상

https://www.youtube.com/watch?v=eh04LRnh2Tg&t=13s

public class Utils : MonoBehaviour
{
    // 0 ~ maxCount까지의 숫자 중 겹치지 않는 n개의 난수가 필요할 때 사용
    public static int[] RandomNumbers(int maxCount, int n)
    {
        int[] defaults  = new int[maxCount];    // 0~maxCount까지 순서대로 저장하는 배열
        int[] results   = new int[n];           // 결과 값들을 저장

        // 배열 전체에 0부터 maxCount의 값을 순서대로 저장
        for ( int i = 0; i < n; ++i )
        {
            defaults[i] = i;
        }

        // 우리가 필요한 n개의 난수 생성
        for ( int i = 0; i < n; ++i )
        {
            int index = Random.Range(0, maxCount);

            results[i] = defaults[index];
            defaults[index] = defaults[maxCount - 1];

            maxCount --;
        }

        return results;
    }
}

가지고 있는 패턴들을 실행/종료하는 패턴관리자