倒计时定时器在Unity C脚本



我在一个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字符串的构造。我会使用这样的代码:

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

编辑:(gameTimer - Time.timeSinceLevelLoad)/60是一个整数运算,这就是为什么它不起作用。

最新更新