Unity3D 2018.2.4 C#
在此生成程序代码中,它不断实例化。我如何停止实例化生成,直到销毁所有生成的敌人。
我正在检查
FileReader reader = new FileReader("pom.xml")
when(mockReader.read(reader)).thenReturn(mockModel);
Model model = mockReader.read(reader);
因为我要计算所有被消灭的敌人,并且使波生成器乘以敌人的StartAmount BUT多少倍,所以即使我将波转发置于if语句中,代码也会继续实例化。
我如何在停止生成器实例化之前增加一个限制,直到该波浪/回合的计数被破坏并能够移至下一个波浪/回合?
这是我到目前为止的代码
if (destroyedEnemyCounter == enemyStartAmount)
答案 0 :(得分:2)
检查后
if (destroyedEnemyCounter == enemyStartAmount)
循环将再次开始,再次产生enemyStartAmount
。
您可以做的是在生成逻辑周围添加一个条件,例如在bool readyForNextWave
内有一个true
设置为if (destroyedEnemyCounter == enemyStartAmount)
if(readyForNextWave)
{
readyForNextWave = false;
for (int i = 0; i < enemyStartAmount; i++)
{
// Each Wave is a different way
// ...
yield return new WaitForSeconds(spawnWait);
}
}
// ...
if (destroyedEnemyCounter == enemyStartAmount)
{
readyForNextWave = true;
Debug.Log("Next Wave Incoming");
// ...
}
答案 1 :(得分:2)
替换
if (destroyedEnemyCounter == enemyStartAmount)
使用
yield return new WaitUntil(() => destroyedEnemyCounter == enemyStartAmount);