日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Unity之计时器功能(转)

發布時間:2025/3/14 编程问答 11 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Unity之计时器功能(转) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Unity時鐘定時器插件——Vision Timer源碼分析之二

? ? ? ?前面的已經介紹了vp_Timer(點擊前往查看),vp_TimeUtility相對簡單很多,vp_TimeUtility定義了個表示時間的結構Units:

C#代碼??
  • ///?<summary>??
  • ///?represents?a?time?measured?in?standard?units??
  • ///?</summary>??
  • public?struct?Units??
  • {??
  • ??
  • ????public?int?hours;??
  • ????public?int?minutes;??
  • ????public?int?seconds;??
  • ????public?int?deciSeconds;?????//?a.k.a.?'tenths?of?a?second'??
  • ????public?int?centiSeconds;????//?a.k.a.?'hundredths?of?a?second'??
  • ????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之计时器功能(转)的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。