Time类是Unity中获取时间信息的接口类,只有静态属性。
1、游戏从开始到现在经历的时间(秒)(只读)
public static float time;
注:在一个帧中多次调用,则返回相同的值。
2、上一帧耗费的时间(秒)(只读)
public static float deltaTime;
例:transform.Translate(0,0,Time.deltaTime * 10); //表示物体在Z轴方向移动10m/s。
一帧:一副静止的画面,1秒时间内传输图片的帧数。
帧速率:fps(Frames Per Second)每秒可刷新几次。
3、最近FixedUpdate的时间。该时间从游戏开始计算。返回从游戏启动到现在以固定频率更新的时间。
public static float fixedTime;
4、Time.deltaTime的平滑淡出
public static float smoothDeltaTime;
注:通常Time.smoothDeltaTime的累加和比Time.deltaTime的累加和稍微大些。主要用于在非FixedUpdate方法中需要平滑过渡的计算。
5、时间流逝速度的比例。可以用来制作慢动作特效。
public static float timeScale;
注:默认值为1.
例:若想代码受timeScale控制时(如暂停、加速),可以把代码放在FixedUpdate中,又或者跟Time.time或Time.deltaTime扯上关系。
总结:
1)timeScale不影响Update和LateUPdate,会影响FixedUpdate。
2)timeScale不影响Time.realtimeSinceStartup,会影响Time.timeSinceLevelLoad和Time.time。
3)timeScale不影响Time.fixedDeltaTime和Time.uncaleDeltaTime,会影响Time.deltaTime.
6、已渲染的帧的总数(只读)
public static int frameCount;
7、游戏从开始到现在经历的真实时间(秒)
public static float realtimeSinceStartup;
8、固定帧率设置,用于设置或返回帧速率的值
public static int captureFramerate;
例:Time.captureFramerate = 25; //帧速率为25fps。