C#、Unity:Time 时间与计时

这篇具有很好参考价值的文章主要介绍了C#、Unity:Time 时间与计时。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1. Unity Time类

Time.time:(只读)表示从游戏开发到现在的时间,会随着游戏的暂停而停止计算。

Time.timeSinceLevelLoad:(只读)表示从当前Scene开始到目前为止的时间,也会随着暂停操作而停止。

Time.deltaTime:(只读)表示从上一帧到当前帧时间,以秒为单位。

Time.fixedTime:(只读)表示以秒计游戏开始的时间,固定时间以定期间隔更新(相当于fixedDeltaTime)直到达到time属性。

Time.fixedDeltaTime:表示以秒计间隔,在物理和其他固定帧率进行更新,在Edit->ProjectSettings->Time的Fixed Timestep可以自行设置。

Time.maximumDeltaTime:一帧能获得的最长时间。物理和其他固定帧速率更新(类似MonoBehaviour
FixedUpdate)。

Time.SmoothDeltaTime:(只读)表示一个平稳的deltaTime,根据前 N帧的时间加权平均的值。

Time.timeScale:时间缩放,默认值为1。若设置<1,表示时间减慢;若设置>1,表示时间加快;若设置=0,则游戏暂停。可以用来加速、减速和暂停游戏,非常有用。

Time.frameCount:(只读)总帧数

Time.realtimeSinceStartup:(只读)表示自游戏开始后的总时间,即使暂停也会不断的增加。

Time.captureFramerate:表示设置每秒的帧率,然后不考虑真实时间。

Time.unscaledDeltaTime:(只读)不考虑timescale时候与deltaTime相同,若timescale被设置,则无效。

Time.unscaledTime:(只读)不考虑timescale时候与time相同,若timescale被设置,则无效。

2. C#-System.DateTime

日期时间相关处理:

0/ 构造函数:
DateTime(Int32 年, Int32 月, Int32 日)
DateTime(年,月,日,时,分,秒,(可再加毫秒)/协调世界时 (UTC) 或本地时间)

1/ 属性:
DateTime dt = DateTime.Now;
dt.ToString();// 1/22/2017 3:43:19 PM
//获取一个DateTime对象,该对象设置为此计算机上的当前日期和时间,表示为本地时间。[受时区影响;我们中国使用的是东八区的时间,所以和UTC大了8个小时]

DateTime dt2 = DateTime.Today;
dt2.ToString();//1/22/2017 12:00:00AM 当天日期,其时间组成部分设置为00:00:00。

DateTime dt3 = DateTime.UtcNow ;
dt3.ToString();//1/22/2017 7:43:19 AM 此计算机上的当前日期和时间,表示为协调通用时间 (UTC,0时区的时间)

dt.Year.ToString();//2017

dt.Date.ToString();// 1/22/2017 12:00:00 AM获取此实例的日期部分;其日期与此实例相同,其时间值设置为午夜 12:00:00 (00:00:00)。

dt.Day.ToString(); //22 获取此实例所表示的日期为该月中的第几天。

dt.DayOfWeek.ToString();//Sunday 获取此实例所表示的日期是星期几。

dt.DayOfYear.ToString();//22 获取此实例所表示的日期是该年中的第几天。

dt.Hour.ToString();//14 获取此实例所表示日期的小时部分。(24h制)

dt.Kind.ToString();//Local 返回基于本地时间Local、协调世界时 (UTC),还是两者皆否

dt.Millisecond.ToString();//630 获取此实例所表示日期的毫秒部分。

dt.Minute.ToString();//35 获取此实例所表示日期的分钟部分

dt.Month.ToString();//1 获取此实例所表示日期的月部分

dt.Second.ToString();//28 获取此实例所表示日期的秒部分

dt.Ticks.ToString();//632667942284412864获取表示此实例的日期和时间的计时周期数。
//每个计时周期表示一百纳秒,即一千万分之一秒。 1 毫秒内有 10,000 个计时周期。此属性的值表示自 0001 年 1 月 1 日午夜 12:00:00(表示 DateTime.MinValue)以来经过的以 100 纳秒为间隔的间隔数。 它不包括归属于闰秒的刻度数。
dt.TimeOfDay.ToString();//15:20:43.1911987获取此实例的当天的时间。

2/ 方法:
dt.ToFileTime().ToString();//131295394816200492将当前 DateTime 对象的值转换为Windows文件时间。

dt.ToFileTimeUtc().ToString();//131295683210873066将当前 DateTime 对象的值转换为 Windows 文件时间

dt.ToLocalTime().ToString();// 1/22/2017 2:19:17 PM将当前 DateTime 对象的值转换为本地时间

dt.ToLongDateString().ToString();//Sunday,January 22,2017转为长日期字符串表示形式

dt.ToLongTimeString().ToString();//2:20:33 PM转为其等效的长时间字符串表示形式。

dt.ToOADate().ToString();//42757.5978641782转换为等效的OLE自动化日期

dt.ToShortDateString().ToString();// 1/22/2017

dt.ToShortTimeString().ToString();//2:21 PM

dt.ToUniversalTime().ToString();//1/22/2017 6:22:10AM 转换为协调世界时(UTC

dt.AddYears(1).ToString();//1/22/2018 3:51:20 PM增加/减少年(参数可为负)
dt.AddDays(1.1).ToString();//1/23/2017 6:16:36 PM
dt.AddHours(1.1).ToString();//2005-11-5 14:53:04
dt.AddMilliseconds(1.1).ToString();//2005-11-5 13:47:04
dt.AddMonths(1).ToString();//2005-12-5 13:47:04
dt.AddSeconds(1.1).ToString();//2005-11-5 13:47:05
dt.AddMinutes(1.1).ToString();//2005-11-5 13:48:10
dt.AddTicks(1000).ToString();//2005-11-5 13:47:04 计时周期数

dt.CompareTo(dt).ToString();//0 两时间比较:早于<0,同时==0,迟于>0[static&¬ static]

dt.Add(?).ToString();//问号为一个时间段TimeSpan

dt.Equals(“2005-11-6 16:11:04”).ToString();//False [static&¬ static]返回是否具有相同日期和时间
dt.Equals(dt).ToString();//True

dt.GetHashCode().ToString();//1474088234

dt.GetType().ToString();//System.DateTime

dt.GetTypeCode().ToString();//DateTime

dt.GetDateTimeFormats(’s’)[0].ToString();//2005-11-05T14:06:25

dt.GetDateTimeFormats(‘t’)[0].ToString();//14:06

dt.GetDateTimeFormats(‘y’)[0].ToString();//2005年11月

dt.GetDateTimeFormats(‘D’)[0].ToString();//2005年11月5日

dt.GetDateTimeFormats(‘D’)[1].ToString();//2005 11 05

dt.GetDateTimeFormats(‘D’)[2].ToString();//星期六 2005 11 05

dt.GetDateTimeFormats(‘D’)[3].ToString();//星期六 2005年11月5日

dt.GetDateTimeFormats(‘M’)[0].ToString();//11月5日

dt.GetDateTimeFormats(‘f’)[0].ToString();//2005年11月5日 14:06

dt.GetDateTimeFormats(‘g’)[0].ToString();//2005-11-5 14:06

dt.GetDateTimeFormats(‘r’)[0].ToString();//Sat, 05 Nov 2005 14:06:25 GMT

注:string格式字符串:
string.Format(“{0:d}”,dt);//2005-11-5
string.Format(“{0:D}”,dt);//2005年11月5日
string.Format(“{0:f}”,dt);//2005年11月5日 14:23
string.Format(“{0:F}”,dt);//2005年11月5日 14:23:23
string.Format(“{0:g}”,dt);//2005-11-5 14:23
string.Format(“{0:G}”,dt);//2005-11-5 14:23:23
string.Format(“{0:M}”,dt);//11月5日
string.Format(“{0:R}”,dt);//Sat, 05 Nov 2005 14:23:23 GMT
string.Format(“{0:s}”,dt);//2005-11-05T14:23:23
string.Format(“{0:t}”,dt);//14:23
string.Format(“{0:T}”,dt);//14:23:23
string.Format(“{0:u}”,dt);//2005-11-05 14:23:23Z
string.Format(“{0:U}”,dt);//2005年11月5日 6:23:23
string.Format(“{0:Y}”,dt);//2005年11月
string.Format(“{0}”,dt);//2005-11-5 14:23:23

string.Format(“{0:yyyyMMddHHmmssffff}”,dt);//201701221603353262
//DateTime.Now.ToString(IFormatProvider provider)用法:
//注意:HH为24小时制hh为12小时制,年月日时分秒yyyy MM dd HH mm ss
//DateTime.Now.ToString(“yyyy年MM月dd日”); yyyy年MM月dd日
//DateTime.Now.ToString(“HH:mm”); 19:48

计算某年某月的天数
int days = DateTime.DaysInMonth(2007, 8);
days = 31;

给日期增加一天、减少一天
DateTime dt =DateTime.Now;
dt.AddDays(1); //增加一天
dt.AddDays(-1);//减少一天
其它年份方法类似…

3.时间戳

时间戳(timestamp),通常是一个字符序列,唯一地标识某一刻的时间。
时间戳是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总毫秒数。

1/ C#生成一个时间戳:(这里以秒为单位)

private static string GetTimeStamp()
{
    TimeSpan ts = DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, 0);
    return Convert.ToInt64(ts.TotalSeconds).ToString();
}

2/ C#时间戳转换为格式时间:(这里以秒为单位)文章来源地址https://www.toymoban.com/news/detail-826427.html

private DateTime GetTime(string timeStamp)
{
    DateTime dtStart = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1)); //时间戳起始点转为目前时区
    long lTime = long.Parse(timeStamp + “0000000”);//转为long类型
    TimeSpan toNow = new TimeSpan(lTime); //时间间隔
    return dtStart.Add(toNow); //加上时间间隔得到目标时间
}

到了这里,关于C#、Unity:Time 时间与计时的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Unity中Shader的时间_Time

    Unity中Shader的时间_Time _Time.y 代表当前时间 在需要使用的地方直接 * _Time.y 或 x / z / w 测试代码: 一般来说 颜色的混合 一般使用 *= * _Time.y 的操作最好在顶点着色器内操作,节省性能 显示效果:

    2024年02月03日
    浏览(28)
  • 【100个 Unity实用技能】☀️ | Unity中C#获取当前时间戳,时间戳和时间格式相互转换、时间戳转换为多久之前

    🎬 博客主页:https://xiaoy.blog.csdn.net 🎥 本文由 呆呆敲代码的小Y 原创,首发于 CSDN 🙉 🎄 学习专栏推荐:Unity系统学习专栏 🌲 游戏制作专栏推荐:游戏制作 🌲Unity实战100例专栏推荐:Unity 实战100例 教程 🏅 欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正! 📆 未来很长

    2024年02月16日
    浏览(35)
  • C# / Unity关于 世界时间、本地时间、UNIX Timestamps,以及相互转化的记录

    C# / Unity关于 世界时间、本地时间、UNIX Timestamps,以及相互转化的记录 世界时间(UtcTime ) :DateTime.UtcNow 获取的是世界时间,如果开发一些全球国际性质的产品,可以用这个时间来进行。 本地时间(LocalTime) : DateTime.Now 获取的是当前用户所在时区的时间,也就是本地时间。 时间

    2024年02月12日
    浏览(44)
  • Unity3D使用C#脚本修改TextMeshPro的内容(以显示系统时间为例)

    在网上找了很多都没有涉及到这个TextMeshPro内容修改,踩了很多坑,记录一下 特别是using TMPro; public TextMeshProUGUI Text; GetComponent();

    2024年02月11日
    浏览(29)
  • unity工具类篇 unity 计时器

    在规定时间内倒计时 显示倒计时时间 显示正计时时间 暂停、继续 时间速率影响 获取倒计时剩余时间 倒计时结束的回调 参考链接:https://itmonon.blog.csdn.net/article/details/124827131?spm=1001.2014.3001.5502

    2024年02月13日
    浏览(45)
  • unity计时,1秒执行一次

    2024年02月03日
    浏览(22)
  • 【Unity每日一记】Unity中的计时器——4种方法的实现

    👨‍💻个人主页 :@元宇宙-秩沅 👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍💻 本文由 秩沅 原创 👨‍💻 收录于专栏 : unity每日一记 ⭐【软件设计师高频考点暴击】 ⭐【Unityc#专题篇】之c#系统化大礼包】 ⭐【unity数据持久化】数据管理类_PlayerPrfs ⭐【u

    2024年02月06日
    浏览(32)
  • Unity之Time类

    官方手册说明:https://docs.unity3d.com/cn/current/Manual/TimeFrameManagement.html 该帧开始的时间(只读)。此为自游戏启动以来的时间(以秒为单位) 是应用程序已运行的时间(以秒为单位)。它是只读的。 应用程序在每帧开始时接收当前的 Time.time,该值按帧递增。每个帧的 time调用

    2023年04月08日
    浏览(22)
  • Unity的Time.deltaTime

    当我们在编写游戏或交互应用程序时,需要控制元素的动画、运动和其他基于时间的计算。Unity游戏引擎中的Time.deltaTime属性可以帮助我们实现这样的效果。这个属性提供了两个连续帧之间的时间间隔,以便我们可以根据每帧之间的持续时间来调整运动的速度。 Time.deltaTime是一

    2024年02月22日
    浏览(27)
  • Unity开发小技巧(一)、计时器Timer

    Time.deltaTime为游戏每帧执行的时间,该方法一般用加法来计时,原理是利用nity中Update方法的每帧执行的时间,按钮按下后不断累加,大于计时时间时关闭,可根据实际使用情况进行加减,以下给出加法操作。 演示结果: Time.time为从游戏运行开始到现在的时间,该方法一般用

    2024年02月06日
    浏览(30)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包