统一 - 让球停止弹跳/不要卡到底部

Unity - make a ball stop bouncing / don't snap to the bottom

目前我正在尝试在 Unity 中创建一个栩栩如生的乒乓球。

到目前为止,没问题。我分配了一个刚体和一个球体对撞机。球体对撞机有一个 material,我将其弹性设置为 0.85(显然大约是乒乓球在标准实心地板上的值)。

到目前为止球弹得很好,但是当它即将停止时,问题就来了。

最初,球会反弹得越来越低/越来越快,直到它最终 "snapped" 落地(错过了人们期望看到的最后几次反弹)。

我读到这是因为物理设置中的 "bounce threshold"。我认为默认值是 2.0,所以我将其更改为 0.6。

现在球不会突然落地,而是不会停止从最后一个小高度弹跳。

你大概可以从这张图片中看出,球不断弹跳的高度(球的比例对于Unity的公制应该是相当准确的)

我真的不明白为什么会这样,因为弹跳已经设置为 0.85,它不应该每次弹跳将高度降低 15% 吗?

附加信息:我已经尝试了一些东西,也给地板一个物理 material,将弹性设置为 0,调整摩擦参数等,但似乎对此没有任何影响。

怎样才能使球的最后弹跳逼真,并让它更自然地静止?

如有任何帮助,我们将不胜感激。

在此先致谢并致以最诚挚的问候,

莉拉Q

您可以尝试在“编辑”->“项目设置”->“时间”中降低“固定时间步长”值。这将提高物理模拟的准确性。例如,弹跳阈值为 0.6,固定时间步长 0.005 让我的测试球最终停止。

我确实遇到了这个问题,但是降低固定时间步长值并不能解决我的问题,我在刚体组件中将拖动值更改为 1,我的问题就解决了。