Unity 2D如何避免玩家越过敌人

时间:2019-11-22 11:24:45

标签: unity3d

我正在做平台游戏,我的英雄和敌人中都有对撞机和刚体。我的平台上也有对撞机。

一切正常,动作顺畅,花花公子沿着平台移动,跳跃并相互抓住。

我在敌人中使用对撞机,以了解英雄是否触碰了他们,然后对英雄造成了伤害。当进行大刀阔斧砍伐时,我使用“ overlapCicle”来发现剑是否触及了敌人。

我的问题是,通过这种设置,我的英雄和敌人可以在其他人的顶端行走。另外,如果我禁用了敌人的对撞机(使其在被击中后一秒内变得无敌),它将掉落平台。

这种对撞机结构的最佳方法是什么?我希望每个人都在平台上漫步。我希望敌人对撞机能够检测到接触他们的英雄,并且希望我的剑(重叠圆圈)能够找到敌人。而且我希望英雄和敌人能够相互走过,特别是敌人..他们不应该一个人越过另一个人

1 个答案:

答案 0 :(得分:1)

似乎您希望敌人和玩家能够互相行走,同时又能够互相影响。

在这种情况下,您可以为交互(攻击或视觉检测)创建另一个物理层,并设置物理层以确保“玩家”和“敌人”不会发生冲突,但它们的交互层可以与各自的冲突字符。
像这样:

Picture of Physics Layers setup

PlayerTriggersEnemyTriggers将是敌人/玩家之间互动的物理层。

这确保了敌人的视线/攻击对撞机可以击中玩家,但敌人本身不能击中玩家。反之亦然。

要访问物理层菜单,请转到Edit(左上方),然后单击Project Settings
您可以在Unity's Doc中详细了解它。

相关问题