首页 > 其他分享 >Unity2D游戏开发Update与FixedUpdate间的区别

Unity2D游戏开发Update与FixedUpdate间的区别

时间:2023-02-21 16:44:46浏览次数:34  
标签:刷新率 接收 FiexUpdate Unity2D Update 敏感 FixedUpdate 执行

Update方法是每一帧执行一次,FixeUpdate方法是每0.02秒执行一次,即我们常说的50帧的刷新率,

我们在进行物理模拟动作的编写中,常常会写在FixeUpdate中,由于是每0.02秒执行一次,不受电脑屏幕刷新率的影响

但是我们将一些物理模拟操作分开防到两个方法中,或者全部放到FiexUpdate中,会出现一些问题:接受频率过低,

按键无反应,物理模拟操作力度不统一。

这种问题的根本就是两种方法的刷新率不同导致的,由于我们常用的电脑大部分是60帧的刷新率,而FixeUpdate是50帧的刷新率,

并不会感觉到很大的问题,但屏幕刷新率达到100以上这种问题就会很明显,因为屏幕刷新率高于50帧,我们将1秒分为100帧(假如),

屏幕在1秒内能刷新一百次,用户在第一帧按下按键的时候,FiexUpdate要到第二帧才会执行,所以就会导致接收不到,这就是问题的所在。

当然,以上说的是接收敏感类型的物理模拟操作,类似移动这种接收不敏感,执行敏感的操作还是要写在FiexUpdate中,是因为移动需要持续稳定的推力,

对执行频率更敏感,而对接收频率不敏感,移动时无论遗漏了或是多录了按键消息,FixedUpdate都可以保证执行频率稳定。

由于跳跃是瞬发,属于接收敏感,执行不敏感,接收到按键消息之后执行一次即可,只要反馈时间在30FPS以内,体感就不会有偏差,所以即使是使用了物理效果依然要放在Update中

总结

接收敏感类型的操作放到Update中,执行敏感的操作放到FiexUpdate中。

标签:刷新率,接收,FiexUpdate,Unity2D,Update,敏感,FixedUpdate,执行
From: https://www.cnblogs.com/Aliezerofist/p/17141532.html

相关文章