Unity Javascript 制作了一个好的对撞机



所以,我正在Unity中开发一款游戏,我的碰撞遇到了一些问题。问题是我制造的汽车有时会在墙旁边出现故障,不会后退或向前移动。即使它没有碰撞。我所做的是添加 2 个空游戏对象。将它们命名为前后保险杠,并添加了一个脚本,当保险杠撞墙时激活该脚本。如果前保险杠撞到墙上,它就不能前进,如果后保险杠撞到墙上,它就不能后退。但这其实不是那么好。我需要知道如何设置一个好的对撞机,因为这在你玩的时候真的很烦人。此外,汽车可以达到 50 速。

假设汽车可以高速碰撞到墙壁上,我会考虑对汽车的刚体使用特定的碰撞检测。

有一些碰撞检测

方法用于防止快速移动的对象在不检测碰撞的情况下穿过其他对象。

来自 Unity 的文档:

    离散
  • :对场景中的所有其他碰撞体使用离散碰撞检测。其他碰撞体在测试碰撞时将使用离散碰撞检测。用于正常碰撞(这是默认值)。
  • 连续:对动态碰撞体(带刚体
  • )使用离散碰撞检测,对静态网格碰撞体(无刚体)使用连续碰撞检测。设置为"连续动态"的刚体在测试针对此刚体的碰撞时将使用连续碰撞检测。其他刚体将使用谨慎碰撞检测。用于连续动态检测需要与之碰撞的对象。(这对物理性能有很大的影响,如果您没有快速对象碰撞的问题,请将其设置为离散)
  • 连续动态
  • 对设置为"连续"和"连续动态碰撞"的对象使用连续碰撞检测。它还将对静态网格碰撞体(无刚体)使用连续碰撞检测。对于所有其他碰撞器,它使用谨慎的碰撞检测。用于快速移动的物体

如您所见,您应该对墙壁使用连续检测,对汽车使用连续动态检测。

警告 :不要忘记连续检测对性能有很大影响,只有在遇到碰撞问题且对象数量尽可能少的情况下才应使用它。

最新更新