以适当的方式显示时间

时间:2017-10-24 13:09:21

标签: c# unity3d

我需要在关卡中显示时间,其中我想要显示玩家完成其关卡的时间,我正在计算适当的时间,但是这里没有以正确的格式显示我的代码到目前为止。 我需要这种格式的小时:分钟:秒 但它以这种格式显示 秒:纳秒 如果60秒过去了,它没有转换为1分钟,它连续增加,61,62等等

public void Start()
{
 init_time = Time.time;
}
public void Update()
{
    if (game_ended_bool) 
    {
        return;
    }
     init_time = init_time + 1.0f;
    string time_to_show = Mathf.Floor((init_time/60.0f)).ToString("00")+":"+(init_time%60).ToString("00");
    time_remain_text.text = time_to_show;
    time_taken_to_com_level = init_time;
//      print (time_to_show);
} 

2 个答案:

答案 0 :(得分:3)

使用string.Format让事情变得干净利落。我已经在您的秒数上添加了Mathf.FloorToInt,告诉我它是否符合您的需求。

此外,您应该使用Time.time来获取正确的时间。您不必通过向+ 1

添加init_time来自行处理此问题
init_time = Time.time;
string time_to_show = string.Format( "{0:00}:{1:00}", Mathf.FloorToInt( ( init_time / 60.0f ) ), Mathf.FloorToInt( init_time ) % 60 ) 

答案 1 :(得分:3)

它没有显示纳秒,但是每次调用Update()时,你都会为你的计时器增加1秒 - 这是每秒很多次。

init_time = init_time + 1.0f;

将上述行替换为:

init_time = init_time + Time.deltaTime; // deltaTime adds the time it took to complete the last frame.