gpt4 book ai didi

c# - 无法在 Unity 中停止协程

转载 作者:太空宇宙 更新时间:2023-11-03 18:01:57 25 4
gpt4 key购买 nike

我试图阻止在玩家死亡时产生波浪,但我似乎无法阻止协程。我真的不知道如何再攻击它,因为添加 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;
}
}

最佳答案

  1. 当玩家死亡时,您需要将 gameOver 设置为 True
  2. 您还需要添加逻辑以将 while 循环更改为 false 以退出 while 循环。

例如,在 while 循环内 currentHealth == 0 时设置 gameOver = true并设置 while(gameOver == false)

关于c# - 无法在 Unity 中停止协程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55442254/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com