Unity 根据 数字 让 显示游戏总时长的txt直接显示该个 时间时分秒显示方法
效果如下:
上代码
void Update(){
int timeER =int.Parse((txt_gameTimesER -= Time.deltaTime).ToString("00"));
Set_All_PlayTime_txtLookTime(timeER,bg.txt_LastTime);
}
/// <summary>
/// 根据 数字 让 显示游戏总时长的txt直接显示该个 时间的函数
/// (1.填入 直接显示的数字,2.填入用于显示的 text组件)
/// </summary>
private void Set_All_PlayTime_txtLookTime(int count, Text txt)
{
//获取 该个数字的长度
string str = count.ToString();
if (str.Length >= 1)
{
//把1个数字 转换成 小时:分钟:秒数
TimeSpan ts = new TimeSpan(0, 0, Convert.ToInt32(count));
string strs = "";
//如果 这个数字达到了小时;把这1个数字 转换成 小时:分钟:秒数 的格式
if (ts.Hours > 0)
{
strs = ts.Hours + ":" + ts.Minutes.ToString() + ":" + ts.Seconds;
}
//如果这个数字 达不到小时,并且这个数字达到了分钟;把这1个数字 转换成 分钟:秒数 的格式
if (ts.Hours == 0 && ts.Minutes > 0)
{
if (ts.Minutes.ToString().Length == 1)
{
if (ts.Seconds.ToString().Length == 1)
{
strs = "0" + ts.Minutes.ToString() + ":0" + ts.Seconds;
}
else
{
strs = "0" + ts.Minutes.ToString() + ":" + ts.Seconds;
}
}
else if (ts.Minutes.ToString().Length == 2)
{
if (ts.Seconds.ToString().Length == 1)
{
strs = ts.Minutes.ToString() + ":0" + ts.Seconds;
}
else
{
strs = ts.Minutes.ToString() + ":" + ts.Seconds;
}
}
}
//如果这个 数字 达不到小时 并且 达不到分钟; 把这1个数字 转换成 00小时:00分钟:xx秒数 的格式
if (ts.Hours == 0 && ts.Minutes == 0)
{
if (str.Length == 1)
{
strs = "00:" + "0" + ts.Seconds;
//strs = "00:00:0" + ts.Seconds;00小时:00分钟:0x秒数
}
else if (str.Length == 2)
{
strs = "00:" + ts.Seconds;
//strs = "00:00:" + ts.Seconds;00小时:00分钟:xx秒数
}
}
//最后赋值 让txt显示
txt.text = strs;
}
}