(我看到像我一样的问题,但我的情况有所不同)
我解释说:
我有一个2D游戏(侧视图),玩家四处走动,用剑或锤子等武器互相击打。我在一个名为“Ground”的碰撞层和玩家在“玩家”层中设置了地面。并检查“Ground”和“Player”层的碰撞。地面没有僵硬的身体,但球员有(由于使用重力等)。我希望玩家不要相互碰撞以获得更平滑的机制,但我想在他们通过对方时检测和接收消息,对于我需要的一些porpuses。 现在,如果我取消选中“播放器”冲突层(在Collision2D设置中),它们可以通过,但由于非活动冲突,我无法接收任何消息。如果我将玩家的对手设置为触发器,他们会穿过地面并摔倒。 (如果我错了,请纠正我)
所以我该怎么办?
答案 0 :(得分:2)
让你的玩家游戏对象有两个子对象(一个你可以调用GroundCollider,你可以调用PlayerCollider)
在第一个上,添加一个未选中onTrigger的对撞机。在第二个上,添加一个带有onTrigger的对撞机
答案 1 :(得分:1)
如果两个对象都需要是实体( 不 触发卷),那么您需要编辑物理层。
答案 2 :(得分:0)
所以在玩了Toaster说的话之后,我找到了解决方案。
地面对撞机必须在“地面”层中,在“玩家”图层中检查带有触发器的碰撞器的玩家,我们还需要第三层称为“GroundCollider”,并为玩家提供一个子对象没有检查触发器的碰撞器。
确定。然后在物理2D设置“播放器”层必须检查碰撞JUST自身。并且“Ground”图层和“GroundCollider”应该相互检查碰撞,而不是自身或任何其他图层。
通过这些设置,玩家可以与地面发生碰撞,两名玩家可以互相检查碰撞,也可以互相通过。