当我按下游戏手柄或键盘上的按钮时,我希望我的角色停止。当我按下按钮时,角色必须做一个特定的动画,所以没有任何动作,只有动画。 我试图弄清楚WaitForSeconds如何工作,但是当我尝试使用它时,它不起作用。这里是调用WaitForSeconds
的函数的代码public IEnumerator Wait()
{
yield return new WaitForSeconds (6);
}
当bool变量animationTest为true时,我希望程序等待6秒
if (animationTest)
{
UnityEngine.Debug.Log ("check1");
StartCoroutine (Wait ());
UnityEngine.Debug.Log ("check2");
animationTest = false;
}
但这不起作用! check1和check2同时打印。我错过了什么。这在FixedUpdate()
。
答案 0 :(得分:2)
Coroutine不能像这样工作。它启动一个新的(并行)执行。
为了实现等待,您必须在IEnumerator
。
public IEnumerator SomethingElse() {
animationTest = false;
Debug.Log("check1");
yield return new WaidForSeconds(6f);
Debug.Log("check2");
yield return true;
}
void FixedUpdate() {
if (animationTest) {
StartCoroutine(SomethingElse());
}
}
现在,当您在某个时间点设置animationTest
时,您应该看到两个日志之间的时间间隔为6秒。