【Unity】[帮助文档] 若FixedUpdate内的操作时间长于FixedTimestep会怎样

背景

挺好奇的,比如fixupdate的间隔默认是0.02秒,如果我写在里面的操作超过0.02秒的话,unity是直接中断操作还是会卡死或闪退呢,于是我搜索了一波,国内搜不到,谷歌搜半天搜到个这个。

如果物理系统负载很重,并且游戏无法在 Fixed Timestep 窗口中处理每个物理步骤,则帧的处理时间会更长,从而影响性能。
虽然物理模拟仍然准确,但游戏的帧率会因此降低。 在极端情况下,物理引擎持续超载会导致性能下降,每一帧的显示时间都比上一帧长。
这是因为一帧中所需的物理步骤数基于最后一帧的持续时间。 因此,如果最后一帧由于沉重的物理负载花费了更长的时间,Unity
的响应将是在下一帧中安排更多的物理步骤,以满足超过现在增加的 Delta Time 的指定步骤频率。
这意味着,如果物理引擎仍然处于相同的负载下,每一帧将花费比上一帧更长的时间,直到游戏完全冻结。

我的理解

大概就是说时间片到了以后(默认0.02)函数内的操作会被暂时中断,在下一个fixupdate调用中接着操作。所以如果我们某帧开始操作都为0.021秒才能完成的话,剩下的0.001秒操作会被延到下一帧,假设操作固定为0.021秒,则每帧操作都将逐渐延长,直到卡死。

参考链接

https://gamedevbeginner.com/how-to-use-fixed-update-in-unity/
https://forum.unity.com/threads/how-bad-idea-is-to-increase-the-default-fixedupdate-frequency.1197865/

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值