【发布时间】:2016-07-24 13:25:04
【问题描述】:
目前我正在尝试在 Unity 中创建一个栩栩如生的乒乓球。
到目前为止,没问题。我分配了一个刚体和一个球体对撞机。球体对撞机有一个材质,我将其弹性设置为 0.85(显然大约是乒乓球在标准实心地板上的值)。
到目前为止,球弹得很好,但是当它即将停止时,问题就出现了。
最初,球会弹得越来越低/越来越快,直到它最终“啪”地一声落地(错过了人们期望看到的最后几次反弹)。
我读到这是因为物理设置中的“反弹阈值”。我认为默认值是 2.0,所以我将其更改为 0.6。
现在球不会被弹到地上,而是不会从最后一个小高度停止弹跳。
您可能可以从这张图片中参考,球不断弹跳的高度(球的比例应该非常精确到 Unitys 公制比例系统)
我真的不明白为什么会这样,因为弹性已经设置为 0.85,不应该每次反弹降低 15% 的高度吗?
附加信息:我已经尝试了一些东西,也给地板一个物理材质,将弹性设置为 0,调整摩擦参数等,但似乎对此没有任何影响。
我怎样才能完成逼真的球最后反弹,让它更自然地休息?
任何帮助将不胜感激。
提前致谢并致以最诚挚的问候,
LilaQ
【问题讨论】:
-
您是否调整了您的接触偏移量?默认接触偏移:指定碰撞检测系统用于生成碰撞接触的距离。该值必须为正数,如果设置得太接近零会导致抖动。默认值:0.01。只有距离小于其接触偏移值之和的碰撞器才会生成碰撞接触。
-
哦,很好。我确实做到了。我只是将物理设置(包括接触偏移重新设置为 0.1),并将反弹阈值再次设置为 0.6(以上任何设置都会使它们从您在最后一张图片中看到的高度捕捉到地面,这看起来很奇怪)。但是,球不会停下来,仍然在相同的高度弹跳:/
-
有一点需要考虑,gamedev.stackexchange.com 的读者更可能熟悉 Unity3D。你可以试试那里问。
-
谢谢 Steven Hansen 我不知道 SO 的那部分!
标签: unity3d game-physics unity5