c# - 如果两个条件之一为真,则结束协程

标签 c# unity3d conditional-statements coroutine

我没有完全理解协程。

如果我有一个每帧执行某项操作的协程,如果两个条件之一为真,我该如何结束这种循环行为?

当我说结束时,我的意思也是销毁,而不是进入暂停状态或其他暂停或未完成状态,因此如果不同的条件变为真,我可以重新启动协程。

最佳答案

如果条件存在于协程之外,则使用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/

相关文章:

c# - 寻找所有可能的路径

c# - 多线程 SQL 选择语句

c# - Visual Studio 2008 - 将构建时的文件移动到 bin/

visual-studio - Unity 找不到任何受支持的 Visual Studio 安装

ios - iOS 上的 Opus 解码器崩溃,原因不明

c# - 在一定时间后没有收到数据时断开套接字

c# - 如何在 Unity 中集成 xAPI/TinCan

javascript - 是否可以使用 javascript 在条件语句中将某人发送到网站?

java - 如何从 do while 循环返回值

r - 条件均值陈述