簡體   English   中英

我如何等到一個布爾在統一中為真?

[英]How do I wait until a bool is true in unity?

我正在努力做到這一點,以便在按下按鈕時,文本會更新。

我的代碼:

public Text TextField;

public bool narrationGoing = true;

public void SetText(string text)
{
    TextField.text = text;
}

public void ResumeNarration()
{
    narrationGoing=true;
}

IEnumerator WaitNarration()
{
    narrationGoing = false;
    Debug.Log(narrationGoing);
    yield return new WaitWhile(() => narrationGoing == false);
}

void Start()
{
    Narration();
}

void Narration()
{
    SetText("HeLlO wOrLd");
    StartCoroutine(WaitNarration());
    SetText("The button worked!");
}

但是,當我啟動游戲時,它會觸發“WaitNarration()”協程,因為它確實寫了“false”,但隨后它完全跳過了 yield。 我試圖找到一個解決方案,但遺憾的是沒有任何效果,有人對我如何解決這個問題有答案嗎? 先感謝您! 此外, ResumeNarration() 是按鈕的一個函數,這就是它沒有在代碼中觸發的原因。

您可以在 while 循環內讓出,直到滿足條件。

IEnumerator WaitNarration()
{
    Debug.Log("WaitNarration started");
    
    while (!narrationGoing)
    {
        yield return null;
    }

    Debug.Log("WaitNarration complete");
}

暫無
暫無

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

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