我在 Unity 工作,我有一个很大的脚本。在脚本中的某个点,foo
将启动一个协程。我希望这个协程运行另一个IEnumerator
函数,bar
但我不想bar
从协程开始。相反,我需要foo
开始运行,可能会 yield 几次,调用bar
,等到 bar 完成运行,然后继续运行。目前我不得不bar
IEnumerable
做:
void Start () {
StartCoroutine(foo());
}
IEnumerator foo () {
//Do something up here
foreach (int x in bar()) {
yield return null; //Wait for bar to yield break
}
//Do more stuff down here
yield break;
}
IEnumerable bar () {
for (int x=0; x < 5; x++) {
//Do Something 5 Times
yield return x;
}
yield break;
}
我一直在寻找,但我找不到正确的方法来做到这一点。当然会有超过 10 个这样的“bar”函数,所以我不想每次我想调用一个时都必须创建一个 for 循环。我怎样才能IEnuerator
以这种方式调用其他函数?