[英]Trying to end a coroutine after one or two seconds of it running
我正在 Unity 中制作游戲,您必須在其中撿起垃圾並將其帶到正確的垃圾箱,並且我創建了一個隨機產生垃圾的代碼。 它工作正常,但它會無限生成,但我只想要一定數量的生成。
我希望協程運行大約 1 或 2 秒,總共生成大約 10 個項目。 有任何想法嗎?
void Start()
{
StartCoroutine(TrashSpawnn());
}
IEnumerator TrashSpawnn()
{
while(true)
{
var wanted = Random.Range(minTras, maxTras);
var position = new Vector3(wanted, transform.position.y);
GameObject gameObject = Instantiate(trashPrefab[Random.Range(0, trashPrefab.Length)],
position, Quaternion.identity);
yield return new WaitForSeconds(secondSpawn);
}
}
}
嗯,你正在使用一個無限循環。
使用for
循環代替運行生成代碼 10 次:
for (int i = 0; i < 10; i++)
{
var wanted = Random.Range(minTras, maxTras);
var position = new Vector3(wanted, transform.position.y);
GameObject gameObject = Instantiate(trashPrefab[Random.Range(0, trashPrefab.Length)],
position, Quaternion.identity);
yield return new WaitForSeconds(secondSpawn);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.