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