关于Time.deltatTime的理解

本文解析了在Unity中使用Time.deltaTime*speed*dir控制物体运动的原理,阐述了Update与FixedUpdate的区别,强调了在物理逻辑处理时应使用FixedUpdate函数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言
  • 在写有关控制物体运动的脚本中经常会遇到这么一句话
  • Time.deltaTime*speed*dir
  • 我一直不太理解为什么要乘以Time.deltaTime,今天看了一篇博客,基本弄懂了
  • 和update以及FixUpdate有关
我的理解
在update里面
  • 假如你要让物体每秒运动1单位,那么在Update里面,每一帧的时间都是不固定的,但是1s 假设这里有60帧【这个渲染的帧数会随着机器的性能而受到影响】
  • 假如第一帧时间 f1 = 0.1
  • 第二帧 f2 = 0.2
  • 第三帧 f3 = 0.3 …
  • 那么dir*Time.deltaTime*speed = dir*(f1+f2+f3.....) *speed= dir*1*speed = dir*speed
  • 刚好运动dir*speed个距离
在FixUpdate里面
  • 这个函数是物理更新,也就是固定的时间间隔更新一次
  • 在这个函数中调用就可以直接用
  • dir*speed
  • 调整调用的时间间隔 edit -project settings - Fixed Timestep
两者区别
  • update跟当前平台的帧数有关,而FixedUpdate是真实时间,所以处理物理逻辑的时候要把代码放在FixedUpdate而不是Update。
  • update函数的更新频率和设备的性能以及被渲染的物体有关,结果就导致更新频率不一样,会出现卡顿
借鉴博客
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值