我刚刚开始使用Unity,我不知道在我的代码设计器VS中工作时如何正确调试脚本。
我在脚本中有这个代码,不会给我我想要的格式:
private string GetTimeElapsedAsString()
{
TimeSpan timeElapsed = DateTime.Now.Subtract(_startTime);
return string.Format("{0:mm} {1:ss} {2:ff}", timeElapsed.TotalMinutes, timeElapsed.TotalSeconds, timeElapsed.TotalMilliseconds);
}
我想要的是这样的:“00:07:32”给定格式:“mm:ss:ff”
我只想要最简单的方法来切断每个时间单位的2位数字。 任何想法?
关心Kalrin。
编辑(进展): 我修改了代码。现在它看起来像这样:
private string GetTimeElapsedAsString()
{
TimeSpan timeElapsed = DateTime.Now.Subtract(_startTime);
return string.Format("{0:00}:{1:00}:{2:00}", timeElapsed.Minutes, timeElapsed.Seconds, timeElapsed.Milliseconds);
}
当我去测试我的游戏时,我得到3位显示毫秒 - 为什么会发生这种情况?
看起来像这样: UI Text component in Unity
编辑: 我找到了上一期的解决方案:
return string.Format("{0:00}:{1:00}:{2}", timeElapsed.Minutes, timeElapsed.Seconds, timeElapsed.Milliseconds.ToString().Substring(0,2));
我需要的只是创建一个.Substring(0,2),它只包含整数的2个第一个数字。
那些试图帮助的人! 看起来不错!!:
干杯!
答案 0 :(得分:4)
您将三个号码传递给Format()
。
数字不识别“m ,
s , or
f`,因此它们只打印文字字符。
您希望格式字符串00
将每个数字填充为两位数。
另外,你实际上并不想要.Total*
;见文档。
答案 1 :(得分:2)
我建议你试试
ts.ToString("mm:ss:ff");