如果两个条件之一为真,则结束协程
End Coroutine if one of two conditions becomes true
我不是很了解协程。
如果我有一个每帧执行某项操作的协程,如果两个条件之一为真,我该如何结束这种循环行为?
当我说结束时,我的意思也是销毁,而不是进入暂停状态或其他暂停或未完成状态,因此如果不同的条件成立,我可以重新启动协程。
如果条件存在于协程之外,你使用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
}
}
我不是很了解协程。
如果我有一个每帧执行某项操作的协程,如果两个条件之一为真,我该如何结束这种循环行为?
当我说结束时,我的意思也是销毁,而不是进入暂停状态或其他暂停或未完成状态,因此如果不同的条件成立,我可以重新启动协程。
如果条件存在于协程之外,你使用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
}
}