我没有完全理解协程。
如果我有一个每帧执行某项操作的协程,如果两个条件之一为真,我该如何结束这种循环行为?
当我说结束时,我的意思也是销毁,而不是进入暂停状态或其他暂停或未完成状态,因此如果不同的条件变为真,我可以重新启动协程。
最佳答案
如果条件存在于协程之外,则使用StopCoroutine
:
var coroutine = StartCoroutine(MyRoutine());
...
if (conditionA || conditionB) {
StopCoroutine(coroutine);
}
如果协程内部存在条件,您只需yield break
:
IEnumerator MyRoutine() {
while (true) {
if (conditionA || conditionB) {
yield break; // stop stepping this
}
yield return null; // continue stepping next frame
}
}
关于c# - 如果两个条件之一为真,则结束协程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51070766/