1

我是 Unity 新手,我正在开发一款 2D 游戏。目前,当其中一个是网格对撞机而另一个是盒子或圆形对撞机时,我无法让两个对撞机进行交互。我最初的工作是让 Unity Sample Assets 2D 角色与网格地形交互。当我“玩”这个游戏时,附在角色腿上的圆形对撞机正在穿过网格地形。我简化了问题并创建了两个立方体:

  • 我上传一个立方体并保留 2d 盒子对撞机并添加一个刚体
  • 第二个立方体我删除了 2d box collider 并添加了一个 mesh collider

我将第二个立方体放在第一个立方体下面,然后点击“播放”。顶部的立方体穿过底部的盒子。当我用盒子碰撞器替换底部立方体的网格碰撞器并点击“播放”时,它正确地碰撞并停在盒子上。我猜我在这个简化的例子中犯了同样的错误,因为我在更复杂的 2D 角色场景中。你对我做错了什么有什么建议吗?我已经尝试使网格对撞机凸出(尽管我认为这应该只在两个网格对撞机之间是必需的?)。我还确保 z 位置以及两个对象的层相同。

4

1 回答 1

1

您不能将 3D 对象与 2D 对象碰撞。

void OnCollisionEnter2D(Collision2D coll) 
{
    // Code here is clueless about 3D.
}

API 参考

当传入的对撞机与该对象的对撞机接触时发送(仅限 2D 物理)。

你可以作弊一点。在 Unity 拥有 2D 碰撞器之前,人们会做的是创建一个非常薄的盒子 collider3D,在您的情况下它应该可以工作。

于 2014-10-26T05:37:42.590 回答