【Unity】关于Time.timescale的见解

在我的一个项目中,接触到了Time.timescale,同时也出现了一些Bug,所以写下这篇博文。

首先先了解一下Time.timescale:

1.timeScale不会影响Update和LateUpdate的执行速度

2.FixedUpdate是根据时间来的,所以timeScale只会影响FixedUpdate的速度

那么当Time.timescale = 0时;update,Lateupdate,Fixedupdate会不会执行呢?

答案是update,Lateupdate会执行;但是Fixedupdate不会执行;

当Time.timescale = 1时,此时Unity的时间机制是正常的。

update,Lateupdate,Fixedupdate在同一时间内都执行了一次。

当Time.timescale = 5时,update,Lateupdate,在同一时间内都执行了一次,Fixedupdate执行了五次;

FixedUpdate被调用的时间也是不受timescale影响的,只跟我们在Unity的Edit下的projecSetting里面设置的fixedTimestep有关系,那为什么跑了5次呢?因为timescale=5,时间被拉长,在这么长的时间里FixedUpdate按照fixedTimestep来计算总共跑了5次,所以也可以说FixedUpdate是受到timescale影响的。

也可以这么说Time.timescale可以控制游戏的速度;

当它等于0时,所有依赖于Time 的逻辑或者刚体速度会被冻结,也就是不会运行这些逻辑;

当它等于1时,游戏时间恢复正常;

当它等于n时,游戏此时的时间倍速为n;

 

 

(个人拙见,欢迎大佬指正~)

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值