簡體   English   中英

Unity C腳本中的倒數計時器

[英]Countdown timer in Unity C script

我已經在Unity項目上工作了一段時間,我有一個計時器,目前從30分鍾開始倒計時,但是我希望這是4小時倒計時。 這是我的代碼:

seconds = Mathf.CeilToInt (gameTimer - Time.timeSinceLevelLoad) % 60;
        minutes = Mathf.CeilToInt (gameTimer - Time.timeSinceLevelLoad) / 60; 
    }

    if (seconds == 0 && minutes == 0) {
        chestfree.gameObject.SetActive(true);
        checker = 2;
    }

    remainingTime = string.Format("{0:00} : {1:00}", minutes, seconds); 
    if (seconds != 0 && minutes != 0) {
        h.text = remainingTime.ToString ();
    } else {

        h.text = "Get";
    }

因此,您可以看到我在那里有秒和分鍾,我嘗試將/分鍾后的/ 60更改為19,當它運行時顯示240分鍾,這很好,但是倒計時似乎很奇怪,大約20分鍾后分鍾就減少了秒,所以我知道那不是正確的方法!

誰能向我解釋如何增加小時數或如何使分鍾數從240分鍾開始遞減?

非常感謝!

未經測試的代碼如下:

hours = Mathf.FloorToInt((float)(gameTimer - Time.timeSinceLevelLoad) / 3600);
minutes = Mathf.FloorToInt((float)(gameTimer - Time.timeSinceLevelLoad-hours*3600) / 60); 
seconds = Mathf.FloorToInt((gameTimer - Time.timeSinceLevelLoad) % 60);



if (seconds == 0 && minutes == 0 && hours == 0) {
    chestfree.gameObject.SetActive(true);
    checker = 2;
}
//remainingTime = string.Format("{0}:{1}:{2}",hours,minutes,seconds);
remainingTime = string.Format("{2:00} : {0:00} : {1:00}", minutes, seconds,hours); 
if (seconds != 0 && minutes != 0 && hours != 0) {
    h.text = remainingTime.ToString ();
} else {

    h.text = "Get";
}

我不確定剩余時間字符串的構造。 我會用這樣的東西:

remainingTime = string.Format("{0}:{1}:{2}",hours,minutes,seconds);

編輯: (gameTimer - Time.timeSinceLevelLoad)/60是一個整數運算,這就是為什么它不起作用。 通過強制浮動操作,它應該可以工作。

暫無
暫無

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

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