我试图将.text更改为以下格式:
00:00:00
但我得到了 0:00.00000 我需要更改什么才能更正我的代码?
private void Update()
{
if (!chestButton.IsInteractable ())
{
if (IsChestReady ()) {
chestButton.interactable = true;
chestTimer.SetActive (false);
chestTimerBg.SetActive (false);
newGift.SetActive (true);
return;
}
//Set Timer
ulong diff = ((ulong)DateTime.Now.Ticks - lastChestOpen);
ulong m = diff / TimeSpan.TicksPerMillisecond;
float secondsLeft = (float)(msToWait - m) / 1000.0f;
string r = " ";
//Hours
r += ((int)secondsLeft / 3600).ToString() + ": ";
secondsLeft -= ((int)secondsLeft / 3600) * 3600;
//Minutes
r += ((int)secondsLeft / 60).ToString();
//Seconds
r += (secondsLeft % 60).ToString();
chestTimerTxt.text = r;
}
}
答案 0 :(得分:7)
你忘记了秒转换的int转换。
BYTE [myvar]
但是,最简单的方法是使用TimeSpan。
r += ((int)secondsLeft % 60).ToString();
如果您尝试按照自己的方式手动执行此操作,则还需要检查是否需要添加额外0的情况 - 例如,如果secondsLeft = 50 vs 9.如果您仍然想要这样做,然后在进行所有计算之前尝试将secondsLeft转换为Int(使用Math.Round向上或向下舍入)。您还需要添加":"分钟和秒之间。