Unity3d 统一-使球停止反弹/don';Don’别急着倒下

Unity3d 统一-使球停止反弹/don';Don’别急着倒下,unity3d,game-physics,unity5,Unity3d,Game Physics,Unity5,目前,我正试图在Unity中创造一个像乒乓球一样的生活 到目前为止,没有问题。我指定了一个刚体和一个球体碰撞器。球体对撞机得到了一种材质,我将其反弹设置为0.85(显然大约是乒乓球在标准实心地板上的值) 到目前为止,球反弹得很好,但当它即将静止时,问题就出现了 起初,球会反弹得越来越低/越来越快,直到它最终“啪”地一声落在地上(错过了人们期望看到的最后几次反弹) 我读到这是因为物理设置中的“反弹阈值”。我想默认值是2.0,所以我把它改为0.6 现在,球不会被猛击到地面,而是不会停止从最后一个

目前,我正试图在Unity中创造一个像乒乓球一样的生活

到目前为止,没有问题。我指定了一个刚体和一个球体碰撞器。球体对撞机得到了一种材质,我将其反弹设置为0.85(显然大约是乒乓球在标准实心地板上的值)

到目前为止,球反弹得很好,但当它即将静止时,问题就出现了

起初,球会反弹得越来越低/越来越快,直到它最终“啪”地一声落在地上(错过了人们期望看到的最后几次反弹)

我读到这是因为物理设置中的“反弹阈值”。我想默认值是2.0,所以我把它改为0.6

现在,球不会被猛击到地面,而是不会停止从最后一个小高度反弹

从这张图片中,你可能会看到球不断弹跳的高度(球的刻度应该非常精确到Unity的公制刻度系统)

我真的不明白为什么会这样,既然反弹度已经设置为0.85,它不是应该在每次反弹时将其高度降低15%吗

附加信息:我已经尝试了一些方法,也给地板添加了物理材质,反弹设置为0,调整摩擦参数等。但似乎没有任何效果

我怎样才能像完成最后一次弹跳一样完成人生,让它更自然地停止

任何帮助都将不胜感激

提前感谢并致以最良好的问候


LilaQ

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

我确实遇到了这个问题,但降低固定时间步长值并不能解决我的问题,我将刚体组件网中的“阻力”值改为1,我的问题就解决了。

您调整了接触偏移吗?默认接触偏移:指定碰撞检测系统用于生成碰撞接触的距离。该值必须为正值,如果设置得太接近零,可能会导致抖动。默认值:0.01。只有距离小于其接触偏移值之和的碰撞器才会生成碰撞接触。哦,捕捉得好。的确是这样。我只是重置了物理设置(包括触点偏移回到0.1),反弹阈值再次回到0.6(上面的任何设置都会使它们从上一张图片中看到的高度捕捉到地面,这看起来很奇怪)。但是,球不会静止,仍然在同一高度弹跳:一件事要考虑,读者更可能熟悉UnyT3D。你可以试着问一下。谢谢史蒂文·汉森,我没有意识到这一点!这太棒了,这就成功了-谢谢!为了澄清,我们增加了每秒物理计算的步数,以避免像我上面的例子那样出现物理死角?是的,减少固定时间步数会使每秒有更多的步数。这对我也很有效。但不知道它会如何影响性能