我也是团结和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()
答案 0 :(得分:1)
根据Unity's Documentation for WaitForSeconds你做得对。当我试图运行它时,你的代码运行良好。必须有其他一些问题,或者在等待"之前你可能还有其他日志。我在控制台窗口输出
显然"等待"如果您的播放器当时正在运行,将在3秒后打印。枚举
loadDelay
等待