簡體   English   中英

如果兩個條件之一成立,則結束協程

[英]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
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM