Прерывается работа couroutine (Unity3d)

396
20 января 2017, 05:49

Всем привет. Пишу Space Shooter. В скрипте Gamecontroller есть couroutine, отвечающий за респавн противников.

IEnumerator SpawnEnemies() {
    yield return new WaitForSeconds(timeBeforeSpawning);
    while(true) {
        if (currentNumberOfEnemies <= 1) {
            waveNumber++;
            waveText.text = "Волна: " + waveNumber;
            float randDirection;
            float randDistance;
            for (int i = 0; i < enemiesPerWave; i++) {
                randDistance = Random.Range (10, 25);
                randDirection = Random.Range (0, 360);
                float posX = this.transform.position.x + (Mathf.Cos ((randDirection) * Mathf.Deg2Rad) * randDistance);
                float posY = this.transform.position.y + (Mathf.Cos ((randDirection) * Mathf.Deg2Rad) * randDistance);
                Instantiate(enemy, new Vector3(posX, posY, 0), this.transform.rotation);
                currentNumberOfEnemies++;
                yield return new WaitForSeconds(timeBetweenEnemies);
            }
        }
        yield return new WaitForSeconds (timeBeforeWaves); 
    }   
}

В другом скрипте, который контролирует игрока, есть строчка, останавливающая выполнение couroutine, когда у игрока заканчиваются очки здоровья.

if (hp == 0)
{
    GameOverText.enabled = true;
    GameController gameController = GameObject.FindGameObjectWithTag("GameController").GetComponent("GameController") as GameController;
    gameController.StopAllCoroutines();
}

В случае, если всех противников в волне убивает лазер (стандартный сценарий их смерти), все идет хорошо. Но если хотя бы один противник разбивается об игрока, независимо от количества здоровья игрока, спавн противников прекращается. Подскажите, плиз, куда копать?

READ ALSO
Насколько верное решение placeholder textbox c#?

Насколько верное решение placeholder textbox c#?

Искал в интернете как сделать placeholder для TextBox но не нашел компактного кода и решил изобрести еще один велосипед

464
Сравнение типов значений

Сравнение типов значений

Доброго времени сутокСуть - есть метод:

309