【问题标题】:How to have collision detection without physics in Unity?如何在 Unity 中进行没有物理的碰撞检测?
【发布时间】:2021-05-19 10:58:02
【问题描述】:

我正在制作一个简单的 Unity 2D 游戏。其中有三个游戏对象 -
1) 地面(长矩形)
2) 玩家(正方形)
3) 硬币(圆形)

目前我是在所有三个上使用对撞机。这些碰撞器帮助玩家保持在地面上,当玩家与硬币碰撞时,我会增加分数。
但问题是,当玩家与硬币碰撞时,它的行为就像硬币是物理物体一样,它会停止玩家。我不想要这个
我希望当玩家与硬币碰撞时,它们之间没有物理交互

我尝试了一件事 - 将玩家和硬币中的碰撞器切换为 isTrigger,但在在这种情况下,玩家和地面以应有的方式进行交互(玩家从地面跌落)。

我该怎么办??

【问题讨论】:

  • 将硬币碰撞器设置为触发,这样就不会与玩家进行物理交互,但将地面碰撞器保持为碰撞器(不是触发器),不会掉下来...?你应该已经想到了,所以我一定是错过了什么
  • 是的,它起作用了,我将播放器和硬币对撞机都设置为 isTrigger,这是错误的。我只需要将硬币对撞机设置为 isTrigger。

标签: unity3d game-physics


【解决方案1】:

使可交互对象触发。这样,您可以与他们互动,而不会妨碍您的道路。为此,请转到检查器上的对撞机组件并选中“Is Trigger”复选标记。 然后,转到您的脚本,而不是事件 OnColliderEnter 使用事件 OnTriggerEnter

【讨论】:

  • 是的,它起作用了,我将播放器和硬币对撞机都设置为 isTrigger,这是错误的。我只需要将硬币对撞机设置为 isTrigger。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多