IEnumerator GameRoutine() { maxWave = database.maxWave; maxTurn = database.maxTurn; waves = database.waves; yield return(new WaitForSeconds(1f)); int wave = 1; int turn = 1; int spawnerId = 0; int monsterId = 0; int spawnDelay = 0; while (true) { Debug.Log($"Now Wave : {wave}"); if (wave > maxWave) { wave = 1; } turn = 1; while (true) { if (turn > maxTurn[wave]) { break; } Debug.Log($"turn : {turn} / maxTurn : {maxTurn[wave]}"); List <int> turnInfo = waves[wave][turn]; spawnerId = turnInfo[0]; monsterId = turnInfo[1]; spawnDelay = turnInfo[2]; spawner[spawnerId].Spawn(database.GetData(monsterId)); yield return(new WaitForSeconds(spawnDelay)); turn++; } wave++; TimeManager.Instance.time += 100; yield return(null); //yield return WaitUntil 준비 기간 동안 정지 } }