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 Threshold
(Edit->Project Settings->Physics):
或通过运行时的脚本(参见Physics.bounceThreshold)
Physics.bounceThreshold = 1;
根据需要将其设置为尽可能小...但请注意
这个值还可以减少抖动,所以不建议将其设置为非常低的值。
【讨论】:
非常有据可查的答案。感谢你的付出。这正是我所需要的以上是关于Unity 中的物理对象在低速时无法正确反弹的主要内容,如果未能解决你的问题,请参考以下文章
100个 Unity实用技能 | 求反射向量的方法,让小球按照物理反射的角度反弹(出射角=入射角)