我是 Unity 新手,在处理 2D 碰撞时遇到问题。在我的游戏中,敌人有一个 Rigidbody2D,其 Body Type 设置为 Dynamic。我还将播放器 RigidBody2D 设置为 Dynamic。然而,每当玩家在移动时与敌人接触时,敌人就会像踢足球一样被击倒/踢开。因此,我将敌人的 Rigidbody2D 设置为 Kinematic,这似乎解决了与玩家碰撞的问题(因为玩家将停止移动并且不再能够将它们击退)。然而,使用运动类型,敌人不再与墙壁碰撞,他们现在可以自由地穿过墙壁移动。
我的目标是让玩家被敌人阻挡(而不是穿过它们)而不将它们推开,并且敌人与墙壁发生适当的碰撞(无法穿过墙壁) 正确的做法是什么?
提前致谢。
定义一个新图层“Player”,将此图层赋予您的玩家。 然后在你的敌人刚体或碰撞组件中有一个名为“包含层”的部分,选择“玩家层”。敌人忽略来自玩家的任何力量。