Unity3D:让 BoxCollider2D 与地板碰撞 'earlier'?

Unity3D: Letting a BoxCollider2D collide with the floor 'earlier'?

前期信息:

我正在 Unity 中制作一款 2D 游戏,它的行为类似于 Castle Crashers,玩家可以像在横版游戏中一样前后移动,但也可以上下移动,有点像自上而下的游戏 - 但它仍然'sidescroller'.

在 Unity 中,我将 Rigidbody2Ds 和 Boxcollider2Ds 用于物理。 然而,当想要模拟掉落物品、创建 gibs 或任何其他需要掉落到 'floor' 的对象时,这会变得很棘手。

需要掉落到地板上的物体不知道地板在哪里,所以它们会永远掉落。

问题

能否将 Boxcollider2D 设置为与单个无限 x 轴碰撞?

对象 A 应该与红轴碰撞,对象 B 应该与蓝轴碰撞。 这可能吗?

  • 您可以使用图层。并在项目设置 -> Physics2DSettings 中将它们设置为不相互碰撞。有 32 层的硬性限制,前 8 层被系统使用(你仍然可以为此使用它们)这给你留下了 24 个谨慎的层 - 当对象改变它们在 Y 轴上的位置时改变对象的层。游戏玩法可能感觉很糟糕。

  • 使用 3D 物理。将你的相机在 X 轴上倾斜 45 度,将投影设置为正射,并在不可见的 3D 物理对象上绘制 2D 精灵 - 然后你将拥有真正的 2D 平面来行走和跳跃。

  • 完全不要使用 box2d:编写自己的 - 简单的物理库,只需要跳跃和下落,对吗?