生活随笔
收集整理的這篇文章主要介紹了
Unity之计时器功能(转)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Unity時鐘定時器插件——Vision Timer源碼分析之二
? ? ? ?前面的已經介紹了vp_Timer(點擊前往查看),vp_TimeUtility相對簡單很多,vp_TimeUtility定義了個表示時間的結構Units:
C#代碼??
public?struct?Units??{????????public?int?hours;??????public?int?minutes;??????public?int?seconds;??????public?int?deciSeconds;?????????public?int?centiSeconds;????????public?int?milliSeconds;??}?? ? ? ? ?下面就直接貼出時間與Units的轉換,Units轉換為string,時間轉換為時鐘轉過的度數的實現
?1.時間與Units的相互轉換:
C#代碼??
public?static?Units?TimeToUnits(float?timeInSeconds)??{??????Units?iTime?=?new?Units();??????iTime.hours?=?((int)timeInSeconds)?/?3600;??????iTime.minutes?=?(((int)timeInSeconds)?-?(iTime.hours?*?3600))?/?60;??????iTime.seconds?=?((int)timeInSeconds)?%?60;????????iTime.deciSeconds?=?(int)((timeInSeconds?-?iTime.seconds)?*?10)?%?60;??????iTime.centiSeconds?=?(int)((timeInSeconds?-?iTime.seconds)?*?100?%?600);??????iTime.milliSeconds?=?(int)((timeInSeconds?-?iTime.seconds)?*?1000?%?6000);????????return?iTime;??}??public?static?float?UnitsToSeconds(Units?units)??{????????float?seconds?=?0.0f;??????seconds?+=?units.hours?*?3600;??????seconds?+=?units.minutes?*?60;??????seconds?+=?units.seconds;????????seconds?+=?(float)units.deciSeconds?*?0.1f;??????seconds?+=?(float)(units.centiSeconds?/?100);??????seconds?+=?(float)(units.milliSeconds?/?1000);????????return?seconds;????}?? ?
2.時間轉換為字符串string:
C#代碼??
public?static?string?TimeToString(float?timeInSeconds,?bool?showHours,?bool?showMinutes,?bool?showSeconds,??????????????????????????????????????bool?showTenths,?bool?showHundredths,?bool?showMilliSeconds,??????????????????????????????????????char?delimiter?=?':')??{????????Units?iTime?=?TimeToUnits(timeInSeconds);????????string?hours?=?(iTime.hours?<?10)???"0"?+?iTime.hours.ToString()?:?iTime.hours.ToString();??????string?minutes?=?(iTime.minutes?<?10)???"0"?+?iTime.minutes.ToString()?:?iTime.minutes.ToString();??????string?seconds?=?(iTime.seconds?<?10)???"0"?+?iTime.seconds.ToString()?:?iTime.seconds.ToString();??????string?deciSeconds?=?iTime.deciSeconds.ToString();??????string?centiSeconds?=?(iTime.centiSeconds?<?10)???"0"?+?iTime.centiSeconds.ToString()?:?iTime.centiSeconds.ToString();??????string?milliSeconds?=?(iTime.milliSeconds?<?100)???"0"?+?iTime.milliSeconds.ToString()?:?iTime.milliSeconds.ToString();??????milliSeconds?=?(iTime.milliSeconds?<?10)???"0"?+?milliSeconds?:?milliSeconds;????????return?((showHours???hours?:?"")?+??????????(showMinutes???delimiter?+?minutes?:?"")?+??????????(showSeconds???delimiter?+?seconds?:?"")?+??????????(showTenths???delimiter?+?deciSeconds?:?"")?+??????????(showHundredths???delimiter?+?centiSeconds?:?"")?+??????????(showMilliSeconds???delimiter?+?milliSeconds?:?"")).TrimStart(delimiter);????}????? ?
3.時間對應時鐘的轉過的度數:
C#代碼??
private?static?float?HoursToDegreesInternal(float?hours,?float?minutes?=?0.0f,?float?seconds?=?0.0f)??{??????return?(hours?*?30.0f)?+?(minutes?*?0.5f)?+?(seconds?*?0.0083333333f);??}??private?static?float?MinutesToDegreesInternal(float?minutes,?float?seconds?=?0.0f,?float?milliSeconds?=?0.0f)??{??????return?(minutes?*?6.0f)?+?(seconds?*?0.1f)?+?(milliSeconds?*?0.0001f);??}????private?static?float?SecondsToDegreesInternal(float?seconds,?float?milliSeconds?=?0.0f)??{??????return?(seconds?*?6.0f)?+?(milliSeconds?*?0.006f);??}??????private?static?float?MilliSecondsToDegreesInternal(float?milliSeconds)??{??????return?milliSeconds?*?0.36f;??} ?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 轉載自:http.dsqiu.iteye.com
轉載于:https://www.cnblogs.com/weiqiangwaideshijie/p/6640108.html
總結
以上是生活随笔為你收集整理的Unity之计时器功能(转)的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。