[英]Using a Coroutine in a loop
StartCoroutine
每个IEnumerator
作为一个新的 Coroutine 启动,并立即与其余代码连续。
因此,如果没有进一步的代码上下文,您会做的事情就像
private void playDBStack()
{
fillList();
StartCoroutine(playDBStackRoutine())
}
private IEnumerator playDBStackRoutine()
{
for(var i = 0; i < 2; i++)
{
// executes playAudio and waits for it to finish
yield return playAudio();
}
}
private IEnumerator playAudio()
{
var x = chooseList(score);
// executes PlayAndWait and wait for it to finish
yield return PlayAndWait(x);
}
通过这种方式,您执行并同时等待IEnumerator
s 完成,然后再转到下一个。
一些进一步的说明:
线
myAudio.GetComponent<AudioSource>();
什么都不做。
当前状态下的整个方法updateScore
可以简单地通过使用来替换
score++;
我会考虑一种可以用简单的运算符“代码气味”代替的方法;)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.