Unity Javascript制作好的对撞机

时间:2016-03-03 19:27:45

标签: unity3d unityscript

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

1 个答案:

答案 0 :(得分:2)

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

有一些碰撞检测方法可用于防止快速移动的物体在没有检测到碰撞的情况下穿过其他物体。

来自Unity的文档:

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

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

警告:不要忘记连续检测对性能有很大影响,只有在遇到碰撞问题时才应该使用它以及尽可能少的物体。