7ded9e2cf5d518986abce895408770659978


계속 찾다가 도저히 못 찾겠어서 기능을 하나씩 빼가면서 실행해보니까 뭐가 문제인지 알겠더라


 private HashSet<int> usedItemNumbers = new HashSet<int>();

   float rand = Random.value;

   int newItemNum;


          if (rand < 0.1f)

          {

              newItemNum = GetUniqueRandomNumber(400, 407, usedItemNumbers);

          }

          else if (rand < 0.4f)

          {

              newItemNum = GetUniqueRandomNumber(200, 220, usedItemNumbers);

          }

          else

          {

              newItemNum = GetUniqueRandomNumber(100, 121, usedItemNumbers);

          }


이걸로 랜덤 아이템 종류를 받아와서


    private int GetUniqueRandomNumber(int min, int max, HashSet<int> usedNumbers)

    {

        int num;

        do

        {

            num = Random.Range(min, max);

        } while (usedNumbers.Contains(num)); // 중복된 경우 다시 시도

        return num;

    }


이 코드로 아이템 정보를 중복을 피하면서 불러왔는데


여기서 usedItemNumbers.Clear(); 이걸로 아이템 번호를 초기화 하고 불러왔어야 하는데


저걸 빼 먹고 아이템 정보를 불러오니까 중복을 피하고 피하고 피하다가 중복되지 않는 숫자가 없으니까


무한 루프가 돌아가는 거였음 진짜 개멍청하네 ㅋㅋㅋㅋㅋㅋ