IEnumerator SpawnNextWave(Wave wave) { arrowPath.ShowPath(wave.pathIndex); waveCount++; for (int i = 0; i < wave.waveEnemies.Length; i++) { for (int j = 0; j < wave.waveEnemies[i].enemyCount; j++) { GameObject enemy = Instantiate(wave.waveEnemies[i].prefab); enemy.GetComponent <MoneyValue> ().moneyValue = (int)wave.resourcesKill; StateController controller = enemy.GetComponent <StateController>(); controller.GetComponent <NavMeshAgent>().enabled = false; controller.wayPoints = paths[wave.pathIndex].GetPath(); Transform[] path = paths[wave.pathIndex].GetPath(); enemy.transform.position = path[0].position; controller.GetComponent <NavMeshAgent>().enabled = true; controller.GetComponent <MoneyValue>().moneyValue = (int)wave.resourcesKill; enemyCount++; yield return(new WaitForSeconds(wave.spawnRate)); } } arrowPath.HidePath(wave.pathIndex); if (waveCount == waves.Length) { isFinished = true; } }