13using System.Collections;
55 [Header(
"Oleadas y niveles")]
73 [Header(
"Puntos de Spawn")]
82 [Tooltip(
"Lista de prefabs de Power-Up a spawnear aleatoriamente")]
88 [Tooltip(
"Número base de power-ups por nivel")]
124 Debug.Log($
"Nivel {currentLevel} – Oleada: {wave.name}");
130 float waveDuration = wave.count / wave.
spawnRate;
135 for (
int i = 0; i < wave.
count; i++)
138 yield
return new WaitForSeconds(1f / wave.
spawnRate);
142 while (GameObject.FindGameObjectsWithTag(
"Enemy").Length > 0)
165 float interval = duration / count;
166 for (
int i = 0; i < count; i++)
168 yield
return new WaitForSeconds(interval);
172 Instantiate(puPrefab, spawnPt.position, spawnPt.rotation);
184 var enemy = Instantiate(prefab, point.position, Quaternion.Euler(0, 0, 180));
194 Debug.Log($
"Subiendo a nivel {currentLevel}, escalando dificultad...");
195 for (
int i = 0; i <
waves.Length; i++)
Componente encargado de generar oleadas de enemigos y Power-Ups. Escala automáticamente la dificultad...
float timeBetweenWaves
Tiempo de espera entre oleadas consecutivas, en segundos.
Wave[] waves
Lista de oleadas configuradas que se repetirán y escalarán en cada nivel.
IEnumerator SpawnWavesRoutine()
Corrutina que controla el flujo continuo de oleadas y niveles. Se encarga de generar enemigos,...
int currentLevel
Nivel actual de dificultad, comienza en 1 y se incrementa tras recorrer todas las oleadas.
void ScaleWavesForNextLevel()
Escala la dificultad de las oleadas incrementando su tamaño y velocidad de aparición....
void Start()
Inicia la corrutina principal que controla la secuencia de oleadas.
IEnumerator SpawnPowerUpsDuringWave(int count, float duration)
Corrutina que genera los Power-Ups de forma espaciada durante la duración de una oleada.
Transform[] spawnPoints
Puntos posibles donde pueden aparecer enemigos o Power-Ups.
void SpawnEnemyFromWave(Wave wave)
Instancia un enemigo aleatorio de la oleada actual en un punto de aparición aleatorio.
int basePowerUpsPerLevel
Número base de Power-Ups a generar por nivel (se multiplica por el nivel actual).
float difficultyScalePerLevel
Factor de escalado de dificultad entre niveles. Aumenta count y spawnRate.
int currentWaveIndex
Índice actual de oleada dentro del array waves.
GameObject[] powerUpPrefabs
Lista de prefabs de Power-Ups que pueden aparecer durante una oleada.
Estructura de datos que define una oleada de enemigos. Permite especificar cuántos enemigos,...
float spawnRate
Velocidad de aparición de los enemigos (enemigos por segundo).
GameObject[] enemyPrefabs
Lista de prefabs de enemigos que pueden aparecer en esta oleada. Se seleccionan aleatoriamente al ins...
string name
Nombre de la oleada, útil para depuración y feedback visual.
int count
Número total de enemigos que se generarán en la oleada.