【Unity】时间相关Time知识点

11 篇文章 1 订阅
10 篇文章 0 订阅

注意:这些是写在Update语句块中的。

一、Time相关内容主要用来干什么?

时间相关内容主要用于游戏中参与位移,计时,时间暂停等等。

二、3大类

1、Time.deltaTime:增量时间,非固定值

自上一帧(只读)以来的完成时间(秒)。 也就是每帧所走过的时间

这个增量时间,在不同设备上,值不一样。
1秒30帧,Time.deltaTime = 1/30s
1秒189帧,Time.deltaTime = 1/189s
1秒N帧,Time.deltaTime = 1/N 秒
这样,1秒所走过的时间 一定等于 1秒所走过的帧数 * 每帧所走过的时间

常用案例:使某个游戏对象以每秒10米的速度移动。
公式:距离 = 时间 * 速度(此处为10米/秒)

void Update()
{
    transform.Translate(0, 0, Time.delatime * 10);
}

解释说明:
众所周知,Update()是每帧执行一次。假如1秒N帧,那么1秒钟,执行N次Update(),每次Update()该游戏对象都会走(Time.deltaTime * 10)这么远。即1秒钟的时间,该游戏对象走了
s = (Time.deltaTime * 10) * N
前面说过,1秒走N帧,则Time.deltaTime = 1/N秒,上述公式计算得出无论N为何值,每秒钟走过的距离一定为10米。
s = (1/N * 10) * N = 10

2、Time.time

此帧开头的时间(仅读),但更倾向于表示游戏运行的时间

在Update()中打印可看到,每帧开始的时间如下:

注意:如果在FixedUpdate()内部调用时,则返回的时FixedTime的固定值,如下:


3、Time.timeScale:时间缩放

时间流逝的尺度

默认值为1,如果设置小于1,表示时间减慢,如果设置大于1,表示时间加快,用来加速和减速游戏,比如特效播放等。
如果设置等于0,则相当于暂停。

三、时间缩放比例

//时间停止
Time.timeScale=0;
//回复正常
Time.timeScale=1;
//2倍速
Time.timeScale=2;

四、帧间隔时间

Unity编译不设置的情况下疯跑为120帧,可以通过设置来降低速度,不然会发热发烫

帧间隔时间:最近的一帧用了多长时间

主要是用来计算位移的:路程=时间*速度

根据需求选择参与计算的间隔时间

1、游戏暂停就不动,使用deltaTime

print("帧间隔时间"+Time.deltaTime);

2、不受暂停影响,使用unscaledDeltaTime

print("不受scale影响的帧间隔时间"+Time.unscaledDeltaTime);

五、游戏开始到现在的时间

 主要是用来单机游戏中计时

1、受scale影响

print("游戏开始到现在的时间"+Time.time);

2、不受scale影响

print("不受scale影响的游戏开始到现在的时间"+Time.unscaledTime);

六、物理帧间隔时间

这里是用FixedUpdate来做,专门处理物理帧更新的函数。(做物理小游戏时使用,但是使用极少)

1、受scale影响

print(Time.fixedDeltaTime);

2、不受scale影响

print(Time.fixedUnscaledDeltaTime);

七、帧数

从开始到现在游戏跑了多少帧(次循环)

print(Time.frameCount);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hiOoo.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值