1 回答

TA貢獻1856條經驗 獲得超5個贊
它確實每次都在等待,但你每幀都執行協程,所以你無法區分差異。改變你的代碼有點像:
void Update()
{
if (showerStart == true) {
showerStart = false; //to ensure that your coroutine called once
StartCoroutine(SmallShower());
}
}
IEnumerator SmallShower()
{
while (smallWaveCount > 0)
{
yield return new WaitForSeconds(smallWaveTimer);// smallWaveTimer = 2.33f
smallPickerNum1 = Random.Range(0, smallCounter - 1); // Needs to randomize each run
smallPickerNum2 = Random.Range(0, smallCounter - 1);
while (smallPickerNum2 == smallPickerNum1)
{
smallPickerNum2 = Random.Range(0, smallCounter - 1);
}
getSpawnZone1 = meteorSpawnSmall[smallPickerNum1];//Grabs the spawnzone from list
getSpawnZone2 = meteorSpawnSmall[smallPickerNum2];//Grabs the 2nd spawn zone from list
Instantiate(smallMeteor, getSpawnZone1.transform.position, Quaternion.identity);
Instantiate(smallMeteor, getSpawnZone2.transform.position, Quaternion.identity);
smallWaveCount--;//smallWaveCount starts at int 10
}
}
添加回答
舉報