在 Unity 中,物理对象无法以低速正确反弹

Mr *_*ell 5 unity-game-engine game-physics

我遇到了一个问题,当启用物理的球运行缓慢时,它不能正确地从物体上反弹。我制作了一个视频来说明问题

https://youtu.be/9T1hkir7sCo

基本上,球应该碰到静止的球,静止的球应该弹开。这在速度足够快时有效,但低于阈值时,它们都开始一起移动,这看起来很奇怪。

这是怎么回事,我怎样才能让它做出正确的反应?

实验细节(两个对象相同):

刚体

  • 质量:1
  • 拖动:0
  • 角阻力:0
  • 使用重力:false

物理材料:

  • 动摩擦:0
  • 静摩擦:0
  • 弹力:1

der*_*ugo 9

UnityBounce Threshold识别反弹的默认值 是速度> 2

设置速度值。如果两个碰撞对象的相对速度低于此值,则它们不会相互反弹。该值还可以减少抖动,因此不建议将其设置为非常低的值。


您可以Bounce Threshold在PhysicsManager( Edit-> Project Settings-> Physics) 中更改此设置:

在此处输入图片说明

或通过运行时的脚本(参见Physics.bounceThreshold)

Physics.bounceThreshold = 1;
Run Code Online (Sandbox Code Playgroud)

让它尽可能小,只要你需要它......但请注意

该值还可以减少抖动,因此不建议将其设置为非常低的值。

在此处输入图片说明