簡體   English   中英

Unity WaitForSeconds不工作c#

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM