[英]Unity WaitForSeconds not Working c#
我在Unity中遇到過一個問題。 我沒有改變我的腳本或場景中的任何內容,而是自己發生的問題。 我很困惑,也是粒子和動畫師也不行。 當我通過按鈕重新加載場景時,所有腳本,粒子和動畫師都可以完美地工作。
void Start(){
if (PlayerPrefs.GetString ("Intro") == null || PlayerPrefs.GetString ("Intro") != "1")
Application.LoadLevel ("dragonIntro");
if (PlayerPrefs.GetInt ("Ads") == null)
PlayerPrefs.SetInt ("Ads", 0);
Screen.sleepTimeout = SleepTimeout.NeverSleep;
if(PlayerPrefs.GetString("language")==""){
PlayerPrefs.SetString("language",Application.systemLanguage.ToString());
Application.LoadLevel(Application.loadedLevel);
}
Debug.Log ("test");
StartCoroutine(rainMe());
}
IEnumerator rainMe(){
Debug.Log ("test2");
float myWait = Random.Range(3f,6f);
Debug.Log ("test3");
yield return new WaitForSeconds(myWait);
Debug.Log ("test4");
isRain = 0;
SendMessage("lightMe");
}
Test4似乎沒有出現在控制台中。
注意:我嘗試使用恢復文件修復它,但問題仍然存在
好! 我解決了這個問題.timeScale導致了這個問題。
誰將面對這個問題可以通過這個答案輕松解決
void Start(){
Time.timeScale= 0;
Time.timeScale = 1;
}
未來的提示,不要為暫停項操作Time.timeScale。 我從困難的方式吸取了教訓,它做了一些時髦的事情。 最好的辦法是保存所有對象的狀態,或者使用靜態公共變量或模擬狀態機的類。 如果暫停狀態(全局靜態),則跳過Update()LateUpdate()FixedUpdate()中的內容。 你得到漂移。
我的解決方案是我重新啟動,我重置Time.timeScale,首先設置為“0”,然后再設置1
void Start(){
Time.timeScale= 0;
Time.timeScale = 1;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.