「Unity3D」(8)Rigidbody2D卡顿问题和重心旋转模拟

本文探讨了Unity3D中Rigidbody2D的平滑运动,包括设置Interpolate属性以减少卡顿,以及在父节点运动时的影响。同时,文章介绍了如何处理手动设置transform属性导致的冲突,推荐使用Rigidbody2D的Move方法。最后,文章讲解了模拟重心旋转的技巧,通过计算和设置angularVelocity或直接调整rotation来实现真实效果。
摘要由CSDN通过智能技术生成

本文主要讨论,在Unity中使用物理引擎Physics2D的三个方面的内容:

  • 如何让Rigidbody2D物理模拟看起来更加的顺滑。
  • 介绍几个造成运动卡顿的原因和解决方法。
  • 针对Rigidbody2D的重心旋转模拟。
让运动更加顺滑

最直接的方法,就是设置Rigidbody2D的Interpolate属性,面板属性提供了下拉选项,有None,Interpolate,Extrapolate。官方文档介绍的很清晰,这是物理模拟在Update过程中的运动插值计算,用来解决运动生涩(卡顿)的问题。

  • None 不进行平滑插值。
  • Interpolate 运动插值基于前几帧的位置。在一个相对平稳的运动环境里是有很好效果的。但如果是颠簸,崎岖的运动环境,前几帧的插值并不能很好的反应未来的趋势。
  • Extrapolate 运动插值基于后几帧的预测位置。根据物理公式和地形预测,可以很好的估算出未来几帧的情况,但遇到突然的碰撞或外力影响,就无法得到很好的效果。

经过测试发现,如果Rigidbody2D的所有的父节点是固定不动的(没有手动控制),Interpolate 和 Extrapolate 一样顺滑,并且要比None来的流畅。如果Rigidbody2D的父节点有运动(手动控制),Interpolate会有明显的卡顿,Extrapolate 和 None 差不多,但是依然是不流畅的。

卡顿问题

抛开性能问题,我遇到的卡顿来自于两个原因。第一,就是上面所说的Rigidbody2D的父节点发生了运动,造成了物理运动有明显的生涩感。第二,就是手动设置了Rigidbody2D的transfo

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值