waitforseconds()之后的语句不能统一工作

时间:2015-07-19 11:47:44

标签: c# unityscript

我也是团结和c#的新手。我想延迟一个函数,因此使用 EditText mEmail = null; EditText mPassword = null; @Override protected void onRestoreInstanceState(Bundle savedInstanceState) { super.onRestoreInstanceState(savedInstanceState); if (savedInstanceState != null) { mEmail.setError( savedInstanceState.getString("email") ); mPassword.setError( savedInstanceState.getString("password") ); } } @Override protected void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); outState.putString("email", mEmail.getError()); outState.putString("password", mPassword.getError()); } 但我的问题是WaitForSeconds()之后的语句没有执行,因此没有显示延迟。

以下是代码:

WaitForSeconds()

控制台上的输出显示:

  

枚举
  loadDelay

同时在调用public void GameOver(){ StartCoroutine (Load ()); Debug.Log("loadDelay"); } IEnumerator Load(){ Debug.Log ("enum"); yield return new WaitForSeconds(3); Debug.Log("waited"); } GameOver()

时没有任何延迟

根本没有执行。我真的不明白这个问题。请解释我是否做错了。
由于
调用Debug.Log("waited");的代码:

GameOver()

1 个答案:

答案 0 :(得分:1)

根据Unity's Documentation for WaitForSeconds你做得对。当我试图运行它时,你的代码运行良好。必须有其他一些问题,或者在等待"之前你可能还有其他日志。我在控制台窗口输出

  

枚举

     

loadDelay

     

等待

显然"等待"如果您的播放器当时正在运行,将在3秒后打印。