Unity3D对Time.deltaTime初步理解

用Unity3D已经有了一段时间,但是对于Time.deltaTime还是没理解,虽然经常用到,这次主要记下对于Time.deltaTime的学习记录。

官方定义:

按照秒来计数,完成最后一帧的时间(只读)。通常,使用这个函数来产生与游戏帧速率无关的效果。

如果你加上或者减去一个值,那你很可能应该乘以Time.deltaTime。当乘以它以后,实质上表达是:让这个物体以每秒钟10米的速

度移动而不是每帧10米。

对于上方的理解,我看许多人都是用代码,我本人也经常用这个函数,所以我这里就简单用文字来解释:

个人理解

1.在unity3D中Update函数是每一帧都要调用一次的,但是帧率(PS:帧率就是每秒钟电脑要播放多少张图片,这个我们应该都懂,电脑看到的动画都是一张一张图片组成的,跟连环画一样)对于每一台电脑几乎都是不一样的,电脑配置和其他因素都会影响帧率。

2.所以如果我们在update函数里,写一个命令“让物体 x 方向移动 +1 米”,那么实际上,unity3D每一帧调用 update函数,如果电脑A配置比较好,帧率较大,每秒钟可以播放70帧,那么每一秒钟,物体都要移动70米;而B电脑配置一般,帧率只有30,那么每一秒,物体只能移动30米,这样如果你做一个应用或者游戏,不同电脑,物体的移动速度都不一样,那肯定是不行的。

3.所以我们需要用到Time.deltaTime函数,这个函数我理解为:每帧需要的时间,对于每一台电脑实际上,每帧的时间都是不一样的,拿取我们刚刚的例子,假设在update函数中,填写物体的速度就是Time.deltaTime,电脑A是每秒70帧,Time.deltaTime我们可以简单理解为1/70,由于一秒70帧,那每一帧就是1/70秒,那么电脑A物体一秒钟我们可以移动 1 米。同理电脑B帧率是30,那么Time.deltaTime可以理解为1/30,那么同样电脑B物体一秒钟也可以移动 1 米。这样不管电脑的帧率是多少,我们都可以控制物体的移动速度不变。

  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值