写了一个计时器
由于工作需要寫了個(gè)計(jì)時(shí)器,沒有想像的那么容易,折騰了一個(gè)小時(shí)左右,終于大功告成。 主要就是把unity的計(jì)時(shí)轉(zhuǎn)換成特定的格式而已,大的單位比如分,時(shí),天不為0的時(shí)候只顯示秒單位,其他在不為0的時(shí)候顯示,代碼很簡(jiǎn)單,就不注釋了,截圖也免了…沒啥好看的,自己運(yùn)行一下就清楚了哈哈
using System.Text; using UnityEngine; using UnityEngine.UI; public class TimerTest : MonoBehaviour {float day = 0;float hour = 0;float minute = 0;float second = 0;const int hex = 60;public Text showTime;void Start(){showTime.text = CutTimer(Time.time).ToString();}void Update(){showTime.text = CutTimer(Time.time).ToString();}StringBuilder sb = new StringBuilder();StringBuilder CutTimer(float t){sb.Length = 0;second = t % hex;sb.Append(second.ToString("0.00"));sb.Append("秒");if (t >= hex){minute = (t - second) / hex;sb.Insert(0, "分");sb.Insert(0, minute);if (minute >= hex){float m = minute % hex;hour = (minute - m) / hex;minute = m;sb.Insert(0, "時(shí)");sb.Insert(0, hour);if (hour > 24){m = hour % 24;day = (hour - m) / 24;hour = m;sb.Insert(0, "天");sb.Insert(0, day);}}}return sb;}public void GamePause(bool state)//暫停游戲{if (state)//暫停游戲{Time.timeScale = 0;}else//恢復(fù) {Time.timeScale = 1;}} }剛剛測(cè)試了下,發(fā)現(xiàn)還是有bug,在到達(dá)小時(shí)單位時(shí),時(shí)間進(jìn)位之后小的那個(gè)單位應(yīng)該是要去掉進(jìn)位的那部分才對(duì),修正后代碼如下:
float day = 0;float hour = 0;float minute = 0;float second = 0;const int hex = 60;public Text showTime;void Start(){showTime.text = CutTimer(Time.time).ToString();}void Update(){showTime.text = CutTimer(Time.time).ToString();}StringBuilder sb = new StringBuilder();StringBuilder CutTimer(float t){sb.Length = 0;second = t % hex;sb.Append(second.ToString("0.00"));sb.Append("秒");if (t >= hex){minute = (t - second) / hex;if (minute >= hex){float m = minute % hex;hour = (minute - m) / hex;minute = m;sb.Insert(0, "分");sb.Insert(0, minute);if (hour > 24){m = hour % 24;day = (hour - m) / 24;hour = m;sb.Insert(0, "時(shí)");sb.Insert(0, hour);sb.Insert(0, "天");sb.Insert(0, day);}else{sb.Insert(0, "時(shí)");sb.Insert(0, hour);}}else{sb.Insert(0, "分");sb.Insert(0, minute);}}return sb;}public void GamePause(bool state)//暫停游戲{if (state)//暫停游戲{Time.timeScale = 0;}else//恢復(fù) {Time.timeScale = 1;}}就測(cè)試了到了小時(shí),至于天。。。出了bug找我!
總結(jié)
- 上一篇: quickchm乱码问题
- 下一篇: SSB基准测试-ClickHouse