我对统一引擎非常陌生,我正在尝试使用waitforseconds函数,但似乎无法正常工作。任何帮助深表感谢。
码:
IEnumerator SetCountText(){
countText.text = "Count: " + count.ToString();
if (count >= 12) {
winText.text = "You win!";
yield return new WaitForSeconds (4);
NextLevel ();
}
}
我通过使用startcoroutine(setcounttext())在start()函数中调用该函数;
提前致谢!
最佳答案
您提到您是在unity脚本的Start()
函数中启动couroutine的。首次初始化脚本时,只会调用一次Start()。
考虑到协程的逻辑,它仅开始一次并立即结束。
如果需要进行持续检查,那么您需要将所有内容封装在while循环中:
IEnumerator SetCountText(){
while (count < 12) {
countText.text = "Count: " + count.ToString();
yield return new WaitForSeconds(1);
}
winText.text = "You win!";
yield return new WaitForSeconds (4);
NextLevel ();
}
现在发生的情况是,如果
count
变量> = 12,然后在4秒钟后级别发生变化。不知道这是否是您要达到的效果。关于c# - Unity Engine WaitForSeconds如何工作?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30446845/