Cosmic Strike
 
Cargando...
Buscando...
Nada coincide
Referencia de la clase SpawnManager

Componente encargado de generar oleadas de enemigos y Power-Ups. Escala automáticamente la dificultad y mantiene la progresión del juego por niveles. Más...

+ Diagrama de herencia de SpawnManager
+ Diagrama de colaboración de SpawnManager:

Atributos públicos

Wave[] waves
 Lista de oleadas configuradas que se repetirán y escalarán en cada nivel.
 
float timeBetweenWaves = 5f
 Tiempo de espera entre oleadas consecutivas, en segundos.
 
float difficultyScalePerLevel = 1.2f
 Factor de escalado de dificultad entre niveles. Aumenta count y spawnRate.
 
Transform[] spawnPoints
 Puntos posibles donde pueden aparecer enemigos o Power-Ups.
 
GameObject[] powerUpPrefabs
 Lista de prefabs de Power-Ups que pueden aparecer durante una oleada.
 
int basePowerUpsPerLevel = 1
 Número base de Power-Ups a generar por nivel (se multiplica por el nivel actual).
 

Métodos privados

void Start ()
 Inicia la corrutina principal que controla la secuencia de oleadas.
 
IEnumerator SpawnWavesRoutine ()
 Corrutina que controla el flujo continuo de oleadas y niveles. Se encarga de generar enemigos, esperar a que desaparezcan, y escalar el juego.
 
IEnumerator SpawnPowerUpsDuringWave (int count, float duration)
 Corrutina que genera los Power-Ups de forma espaciada durante la duración de una oleada.
 
void SpawnEnemyFromWave (Wave wave)
 Instancia un enemigo aleatorio de la oleada actual en un punto de aparición aleatorio.
 
void ScaleWavesForNextLevel ()
 Escala la dificultad de las oleadas incrementando su tamaño y velocidad de aparición. Se ejecuta al finalizar todas las oleadas del array y comenzar un nuevo nivel.
 

Atributos privados

int currentWaveIndex = 0
 Índice actual de oleada dentro del array waves.
 
int currentLevel = 1
 Nivel actual de dificultad, comienza en 1 y se incrementa tras recorrer todas las oleadas.
 

Descripción detallada

Componente encargado de generar oleadas de enemigos y Power-Ups. Escala automáticamente la dificultad y mantiene la progresión del juego por niveles.

Definición en la línea 48 del archivo SpawnManager.cs.

Documentación de funciones miembro

◆ ScaleWavesForNextLevel()

void SpawnManager.ScaleWavesForNextLevel ( )
inlineprivate

Escala la dificultad de las oleadas incrementando su tamaño y velocidad de aparición. Se ejecuta al finalizar todas las oleadas del array y comenzar un nuevo nivel.

Definición en la línea 192 del archivo SpawnManager.cs.

193 {
194 Debug.Log($"Subiendo a nivel {currentLevel}, escalando dificultad...");
195 for (int i = 0; i < waves.Length; i++)
196 {
197 waves[i].count = Mathf.CeilToInt(waves[i].count * difficultyScalePerLevel);
198 waves[i].spawnRate *= difficultyScalePerLevel;
199 }
200 }
Wave[] waves
Lista de oleadas configuradas que se repetirán y escalarán en cada nivel.
float difficultyScalePerLevel
Factor de escalado de dificultad entre niveles. Aumenta count y spawnRate.

Hace referencia a difficultyScalePerLevel y waves.

Referenciado por SpawnWavesRoutine().

+ Gráfico de llamadas a esta función:

◆ SpawnEnemyFromWave()

void SpawnManager.SpawnEnemyFromWave ( Wave wave)
inlineprivate

Instancia un enemigo aleatorio de la oleada actual en un punto de aparición aleatorio.

Parámetros
waveOleada desde la cual se selecciona el enemigo.

Definición en la línea 180 del archivo SpawnManager.cs.

181 {
182 var prefab = wave.enemyPrefabs[Random.Range(0, wave.enemyPrefabs.Length)];
183 var point = spawnPoints[Random.Range(0, spawnPoints.Length)];
184 var enemy = Instantiate(prefab, point.position, Quaternion.Euler(0, 0, 180));
185 enemy.tag = "Enemy";
186 }
Transform[] spawnPoints
Puntos posibles donde pueden aparecer enemigos o Power-Ups.
GameObject[] enemyPrefabs
Lista de prefabs de enemigos que pueden aparecer en esta oleada. Se seleccionan aleatoriamente al ins...

Hace referencia a Wave.enemyPrefabs y spawnPoints.

Referenciado por SpawnWavesRoutine().

+ Gráfico de llamadas a esta función:

◆ SpawnPowerUpsDuringWave()

IEnumerator SpawnManager.SpawnPowerUpsDuringWave ( int count,
float duration )
inlineprivate

Corrutina que genera los Power-Ups de forma espaciada durante la duración de una oleada.

Parámetros
countCantidad total de Power-Ups a generar.
durationDuración total de la oleada en segundos.

Definición en la línea 163 del archivo SpawnManager.cs.

164 {
165 float interval = duration / count;
166 for (int i = 0; i < count; i++)
167 {
168 yield return new WaitForSeconds(interval);
169
170 var puPrefab = powerUpPrefabs[Random.Range(0, powerUpPrefabs.Length)];
171 var spawnPt = spawnPoints[Random.Range(0, spawnPoints.Length)];
172 Instantiate(puPrefab, spawnPt.position, spawnPt.rotation);
173 }
174 }
GameObject[] powerUpPrefabs
Lista de prefabs de Power-Ups que pueden aparecer durante una oleada.

Hace referencia a powerUpPrefabs y spawnPoints.

Referenciado por SpawnWavesRoutine().

+ Gráfico de llamadas a esta función:

◆ SpawnWavesRoutine()

IEnumerator SpawnManager.SpawnWavesRoutine ( )
inlineprivate

Corrutina que controla el flujo continuo de oleadas y niveles. Se encarga de generar enemigos, esperar a que desaparezcan, y escalar el juego.

Definición en la línea 117 del archivo SpawnManager.cs.

118 {
119 yield return new WaitForSeconds(timeBetweenWaves);
120
121 while (true)
122 {
123 Wave wave = waves[currentWaveIndex];
124 Debug.Log($"Nivel {currentLevel} – Oleada: {wave.name}");
125
126 // === Calculamos generación de Power-Ups durante la oleada ===
127 int puCount = Mathf.CeilToInt(basePowerUpsPerLevel * currentLevel);
128 if (puCount > 0 && powerUpPrefabs.Length > 0)
129 {
130 float waveDuration = wave.count / wave.spawnRate;
131 StartCoroutine(SpawnPowerUpsDuringWave(puCount, waveDuration));
132 }
133
134 // === Generación de enemigos ===
135 for (int i = 0; i < wave.count; i++)
136 {
137 SpawnEnemyFromWave(wave);
138 yield return new WaitForSeconds(1f / wave.spawnRate);
139 }
140
141 // Espera a que no quede ningún enemigo en pantalla
142 while (GameObject.FindGameObjectsWithTag("Enemy").Length > 0)
143 yield return null;
144
145 // Preparar siguiente oleada / nivel
147 if (currentWaveIndex >= waves.Length)
148 {
149 currentLevel++;
152 }
153
154 yield return new WaitForSeconds(timeBetweenWaves);
155 }
156 }
float timeBetweenWaves
Tiempo de espera entre oleadas consecutivas, en segundos.
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....
IEnumerator SpawnPowerUpsDuringWave(int count, float duration)
Corrutina que genera los Power-Ups de forma espaciada durante la duración de una oleada.
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).
int currentWaveIndex
Índice actual de oleada dentro del array waves.
float spawnRate
Velocidad de aparición de los enemigos (enemigos por segundo).
int count
Número total de enemigos que se generarán en la oleada.

Hace referencia a basePowerUpsPerLevel, Wave.count, currentLevel, currentWaveIndex, powerUpPrefabs, ScaleWavesForNextLevel(), SpawnEnemyFromWave(), SpawnPowerUpsDuringWave(), Wave.spawnRate, timeBetweenWaves y waves.

Referenciado por Start().

+ Gráfico de llamadas de esta función:
+ Gráfico de llamadas a esta función:

◆ Start()

void SpawnManager.Start ( )
inlineprivate

Inicia la corrutina principal que controla la secuencia de oleadas.

Definición en la línea 108 del archivo SpawnManager.cs.

109 {
110 StartCoroutine(SpawnWavesRoutine());
111 }
IEnumerator SpawnWavesRoutine()
Corrutina que controla el flujo continuo de oleadas y niveles. Se encarga de generar enemigos,...

Hace referencia a SpawnWavesRoutine().

+ Gráfico de llamadas de esta función:

Documentación de datos miembro

◆ basePowerUpsPerLevel

int SpawnManager.basePowerUpsPerLevel = 1

Número base de Power-Ups a generar por nivel (se multiplica por el nivel actual).

Definición en la línea 89 del archivo SpawnManager.cs.

Referenciado por SpawnWavesRoutine().

◆ currentLevel

int SpawnManager.currentLevel = 1
private

Nivel actual de dificultad, comienza en 1 y se incrementa tras recorrer todas las oleadas.

Definición en la línea 101 del archivo SpawnManager.cs.

Referenciado por SpawnWavesRoutine().

◆ currentWaveIndex

int SpawnManager.currentWaveIndex = 0
private

Índice actual de oleada dentro del array waves.

Definición en la línea 96 del archivo SpawnManager.cs.

Referenciado por SpawnWavesRoutine().

◆ difficultyScalePerLevel

float SpawnManager.difficultyScalePerLevel = 1.2f

Factor de escalado de dificultad entre niveles. Aumenta count y spawnRate.

Definición en la línea 66 del archivo SpawnManager.cs.

Referenciado por ScaleWavesForNextLevel().

◆ powerUpPrefabs

GameObject [] SpawnManager.powerUpPrefabs

Lista de prefabs de Power-Ups que pueden aparecer durante una oleada.

Definición en la línea 83 del archivo SpawnManager.cs.

Referenciado por SpawnPowerUpsDuringWave() y SpawnWavesRoutine().

◆ spawnPoints

Transform [] SpawnManager.spawnPoints

Puntos posibles donde pueden aparecer enemigos o Power-Ups.

Definición en la línea 74 del archivo SpawnManager.cs.

Referenciado por SpawnEnemyFromWave() y SpawnPowerUpsDuringWave().

◆ timeBetweenWaves

float SpawnManager.timeBetweenWaves = 5f

Tiempo de espera entre oleadas consecutivas, en segundos.

Definición en la línea 61 del archivo SpawnManager.cs.

Referenciado por SpawnWavesRoutine().

◆ waves

Wave [] SpawnManager.waves

Lista de oleadas configuradas que se repetirán y escalarán en cada nivel.

Definición en la línea 56 del archivo SpawnManager.cs.

Referenciado por ScaleWavesForNextLevel() y SpawnWavesRoutine().


La documentación de esta clase está generada del siguiente archivo: