一、引言
本篇博客 包括:unity中帧的耗时,时间缩放比例,常用日期时间的获取和计算,测试一段程序的耗时。
二、帧时间
名称 | 描述 |
Time.time | (只读)表示从游戏开发到现在的时间,会随着游戏的暂停而停止计算。 |
Time.realtimeSinceStartup | (只读)表示从游戏开发到现在的时间,不会随着游戏的暂停而停止计算。 |
Time.timeSinceLevelLoad | (只读)表示从当前Scene开始到目前为止的时间,也会随着暂停操作而停止。 |
Time.fixedTime | (只读)表示以秒为单位游戏开始的时间。时间间隔为fixedDeltaTime。来统计游戏总时长。 |
Time.deltaTime | (只读)表示从上一帧到当前帧时间,以秒为单位。即Updata中每帧的间隔时间。实际情况视机器性能而定。 |
Time.fixedDeltaTime | (读写)表示以秒计间隔,在物理和其他固定帧率进行更新,在Edit->ProjectSettings->Time的Fixed Timestep可以自行设置。即FixedUpdate中每帧的间隔时间。可以手动设置为固定值。 |
Time.timeScale | (读写)时间缩放,默认值为1。若设置<1,表示时间减慢;若设置>1,表示时间加快;若设置=0,则游戏暂停。可以用来加速、减速和暂停游戏,非常有用。总之timeScale和 Time.time息息相关。 |
Time.frameCount | (只读)总帧数 |
三、日期时间
日期等时间的类,是DateTime。包含 当前时间,年月日时分秒等。
using System;
DateTime dt;
名称 | 描述 | 样例 |
此刻时间: | ||
DateTime .Now | (只读)获得当前时间。 类型:DateTime | DateTime dt = DateTime.Now; dt: 9/19/2018 7:43:51 PM |
年月日时分秒: | ||
dt.Year | (只读)当前年份。 类型:int | int year = dt.Year; year:2018 |
dt.Month | (只读)当前月份。 类型:int | 同上 |
dt.Day | (只读)当前日。 类型:int | 同上 |
dt.Hour | (只读)当前小时。 类型:int | 同上 |
dt.Minute | (只读)当前分钟。 类型:int | 同上 |
dt.Second | (只读)当前秒。 类型:int | 同上 |
dt.Millisecond | (只读)当前毫秒。 类型:int | 同上 1秒 = 1000 毫秒 |
dt.Ticks | (只读)当前tick。 类型:long | 同上 1毫秒 = 10000 ticks |
格式转换: | ||
ToString() | 将时间数据 由DateTime类型 转换为 string类型 | dt .ToString(); dt:"9/19/2018 7:43:51 PM" |
增加变量: | ||
AddYears(int value); | 增加 年份 | DateTime dt2 = dt.AddYears(1); dt2: 9/19/2019 7:43:51 PM |
AddMonths(int months); | 增加 月份 | 同上 |
AddDays(double value); | 增加 日 | 同上 |
AddHours(double value); | 增加 小时 | 同上 |
AddMinutes(double value); | 增加 分钟 | 同上 |
AddSeconds(double value); | 增加 秒 | 同上 |
比较和运算: | ||
DateTime +(DateTime d, TimeSpan t); | 时间 + 某一时间段 | |
DateTime -(DateTime d, TimeSpan t); | 时间 - 某一时间段 | |
TimeSpan -(DateTime d1, DateTime d2); | 时间 - 时间 | 两个时间点的差值 |
==、!=、>、<、>=、<= | 两个时间的比较。 类型:bool |
四、程序运行时间段
在程序运行前、运行后 分别打上时间戳,然后计算时间差 即某段程序 或者 函数 运行的耗时
代码:[
DateTime n1 = DateTime.Now;DOFun();DateTime n2 = DateTime.Now;TimeSpan sp = n2 - n1;long ticks = sp.Ticks;
]
1 毫秒 = 10000 ticks,足够满足时间精度了。