В своем коде spawner я пытаюсь назначить предел создания каждой волны, настраивая его.
Первая волна верна, но во 2-й волне появляется еще один объект, который был порожден, и он не следует за rateOfSpawn
Может быть, он не обновляет свои значения с wave
?
Спасибо.
public Wave[] waves;
[HideInInspector]
public int waveIndex = 0;
private int totalObjectsInWave;
[HideInInspector]
public int destroyedObjectsInWave;
private void OnEnable()
{
StartCoroutine(SpawnObjects());
}
IEnumerator SpawnObjects()
{
yield return new WaitForSeconds(waitStartTime);
Wave wave = waves[waveIndex];
while (allowSpawning)
{
for (int w = 0; w < waves.Length; w++)
{
GetComponent<Gravity>().velocityOfInfluence = wave.speedOfEnemy;
totalObjectsInWave = 0;
totalObjectsInWave = wave.amountOfTiny + wave.amountOfSmall + wave.amountOfLarge;
for (int t = 0; t < wave.amountOfTiny; t++)
{
SpawnTiny(); // Instantiates
yield return new WaitForSeconds(1 / wave.rateOfSpawn);
}
for (int s = 0; s < wave.amountOfSmall; s++)
{
SpawnSmall(); // Instantiates
yield return new WaitForSeconds(1 / wave.rateOfSpawn);
}
for (int l = 0; l < wave.amountOfLarge; l++)
{
SpawnLarge(); // Instantiates
yield return new WaitForSeconds(1 / wave.rateOfSpawn);
}
yield return new WaitUntil(() => destroyedObjectsInWave == totalObjectsInWave);
{
waveIndex++;
yield return new WaitForSeconds(timeBetweenWaves);
}
}
}
}
[System.Serializable]
public class Wave
{
public float rateOfSpawn;
public float speedOfEnemy;
public int amountOfTiny;
public int amountOfSmall;
public int amountOfLarge;
}