private IEnumerator EnemyRespawn(int level) { if (GameManager.Instance != null) { waveTable = null; if (WaveTable.Instance != null && WaveTable.Instance.FindTable(level, out waveTable)) { BossTable.TableRow bossTable = null; if (BossTable.Instance != null && BossTable.Instance.FindTable(waveTable.bossID, out bossTable)) { GameManager.Instance.MakeBoss(bossTable); } float spawnTime = waveTable.waveTime + Time.realtimeSinceStartup; while (spawnTime >= Time.realtimeSinceStartup) { if (GameManager.Instance.GetGameStatus.isGameStart == false) { yield break; } EnemyTable.TableRow enemyTable = null; if (EnemyTable.Instance != null && EnemyTable.Instance.FindTable(waveTable.GetRandomSelectMonsterID(), out enemyTable)) { GameManager.Instance.MakeEnemy(enemyTable, Random.Range(0, GameManager.MAX_ENEMY_LANE_COUNT)); } yield return(new WaitForSeconds(waveTable.createTime)); } } else { GameManager.Instance.GetGameStatus.GameOver(); yield break; } GameManager.Instance.GetGameStatus.AddGem(waveTable.rewardValue); StartCoroutine("EnemyRespawn", GameManager.Instance.GetGameStatus.AddWave()); } }
void OnDestroy() { instance = null; waveTable = null; }