我试图阻止在玩家死亡时产生波浪,但我似乎无法阻止协程。我真的不知道如何再攻击它,因为添加 if 语句和 break 不起作用。如何调用 StopCoroutine 并停止例程?我是否需要引入新方法等?
void Start () {
gameOver = false;
StartCoroutine (SpawnWaves());
}
void Update()
{
if (gameOver)
{
StopCoroutine(SpawnWaves());
}
}
IEnumerator SpawnWaves()
{
yield return new WaitForSeconds(startWait);
while (true)
{
for (int i = 0; i < hazardCount; i++)
{
GameObject enemy = enemies[Random.Range(0, enemies.Length)];
Instantiate(enemy, spawnPosition1, spawnRotation1);
Instantiate(enemy, spawnPosition2, spawnRotation2);
Instantiate(enemy, spawnPosition3, spawnRotation3);
Instantiate(enemy, spawnPosition4, spawnRotation4);
Instantiate(enemy, spawnPosition5, spawnRotation5);
Instantiate(enemy, spawnPosition6, spawnRotation6);
yield return new WaitForSeconds(spawnWait);
}
yield return new WaitForSeconds(waveWait);
enemies[0].GetComponent<EnemyBehviour>().currentHealth *= enemyHealthMultiplier;
}
}
- 当玩家死亡时,您需要将 gameOver 设置为 True
- 您还需要添加逻辑以将 while 循环更改为 false 以退出 while 循环。
例如,在 while 循环内 currentHealth == 0
时设置 gameOver = true
并设置 while(gameOver == false)
我是一名优秀的程序员,十分优秀!