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

Posted

技术标签:

【中文标题】Unity 中的物理对象在低速时无法正确反弹【英文标题】:Physics object doesn't bounce correctly at low speed in Unity 【发布时间】:2019-02-12 18:11:41 【问题描述】:

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

https://youtu.be/9T1hkir7sCo

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

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

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

刚体

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

物理材料:

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

【问题讨论】:

【参考方案1】:

Unity 的默认设置 Bounce Threshold 用于识别反弹是一种速度 > 2

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


您可以在PhysicsManager 中更改此Bounce ThresholdEdit->Project Settings->Physics):

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

Physics.bounceThreshold = 1;

根据需要将其设置为尽可能小...但请注意

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

【讨论】:

非常有据可查的答案。感谢你的付出。这正是我所需要的

以上是关于Unity 中的物理对象在低速时无法正确反弹的主要内容,如果未能解决你的问题,请参考以下文章

unity物理学材质Physic Material

Unity中物体碰撞后去掉相互之间的反弹力

如何设置场景物理主体的边界以正确反弹?

100个 Unity实用技能 | 求反射向量的方法,让小球按照物理反射的角度反弹(出射角=入射角)

100个 Unity实用技能☀️ | 求反射向量的方法,让小球按照物理反射的角度反弹(出射角=入射角)

UNITY物理系统简介