// 웨이브 실행 IEnumerator RunWaves() { while (enemyGenerator.GetCurWave() < _maxWave) { _playerExplore(enemyGenerator.GetCurSpawnPoint().position); yield return(new WaitForSeconds(_waveStartDelayTime)); ChangeWave(); yield return(new WaitForSeconds(_spawnRunTime)); AddTarget(); yield return(new WaitUntil(IsWaveFinished)); // 적 밖에 남지 않으면 스테이지 실패이므로 break; if (_charList.TrueForAll(IsEnemy)) { break; } // 마지막 웨이브에서는 스테이지 클리어를 띄우므로 웨이브 클리어 텍스트를 띄우지 않음 if (enemyGenerator.GetCurWave() < _maxWave - 1) { StartCoroutine(WaveClearAnim()); } followCam.SetMainEnemy(null); followCam.Unzoom(); enemyGenerator.AddWave(); } // 웨이브가 모두 진행된 채로 게임이 끝나면 클리어 if (enemyGenerator.GetCurWave() == _maxWave) { _stageClearText.SetActive(true); _charProfileUI.SetActive(false); _playerClear(); } yield return(new WaitForSeconds(2.0f)); SceneController.Instance.SwitchScene(SceneName.TitleScene, SceneSwitchType.Curtain, 0, 1); InfoManager.Instance.playerIDList.Clear(); }