簡體   English   中英

Unity C#倒計時在場景中持續存在

[英]Unity C# countdown to persist through scenes

嗨,我編寫了一個C#腳本,然后可以在另一個腳本中調用該腳本以跟蹤不同場景之間剩余的時間量,然后在計時器達到0時加載一個場景。我相信這兩個腳本都正確編寫了,但是在計時器到達0時沒有任何反應,我認為問題是我沒有將代碼放置在正確的位置,但是我不確定,我嘗試將其添加到啟動函數和更新函數中。

這是靜態類的腳本;

public static class GlobalCountDown
{
    static DateTime TimeStarted;
    static TimeSpan TotalTime;

    public static void StartCountDown(TimeSpan totalTime)
    {
        TimeStarted = DateTime.UtcNow;
        TotalTime = totalTime;
    }

    public static TimeSpan TimeLeft
    {
        get
        {
            var result = DateTime.UtcNow - TimeStarted;
            if (result.TotalSeconds <= 0)
                SceneManager.LoadScene("Lose");
                return TimeSpan.Zero;           
                //return result;
        }
    }
}

這是我在每個游戲場景中撥打的電話,以檢查剩余時間;

GlobalCountDown.StartCountDown (TimeSpan.FromSeconds (5));

編譯腳本“分配了私有字段`GlobalCountDown.TotalTime',但從未使用過它的值”時收到警告,但不確定如何解決。

任何幫助或建議,將不勝感激。

改變這個

var result = DateTime.UtcNow - TimeStarted;

對此

var result = TotalTime - (DateTime.UtcNow - TimeStarted);

按照你的行為

void Start() 
{
  GlobalCountDown.StartCountDown (TimeSpan.FromSeconds (5)); 
}

void Update() 
{
    if (GlobalCountDown.TimeLeft == TimeSpan.Zero)
      SceneManager.LoadScene("Lose");  
}

並從GlobalCountDown類中刪除SceneManager代碼

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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