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

时间:2019-02-12 18:11:42

标签: unity3d game-physics

我遇到一个问题,当启用物理的球缓慢移动时,它无法正确地弹回物体。我拍了一段视频来说明问题

https://youtu.be/9T1hkir7sCo

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

这是怎么回事,我如何使其正确反应?

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

RigidBody

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

物理材料:

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

1 个答案:

答案 0 :(得分:1)

Unity的默认值 Bounce Threshold用于识别跳动是速度> 2

  

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


您可以在Bounce Threshold中更改此PhysicsManager编辑-> 项目设置-> 物理) :

enter image description here

或在运行时通过脚本(请参见Physics.bounceThreshold

Physics.bounceThreshold = 1;

根据需要将其缩小...但是请注意

  

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

enter image description here