Unity 如何使碰撞仅对特定物体有效

 时间:2024-10-14 10:21:26

1、我们以Unity2D的一个官方案例场景为例子(3D做法完全类似)。我们看到,在这个场景中,Enemies敌人是可以叠加不产生碰撞的,而他们与Player对象(小豆人)是发生碰撞并互相排斥的。

Unity 如何使碰撞仅对特定物体有效

2、为了实现这种效果,首先我们要设置玩家对象的Layer为Player,设置敌人对象的Layer为Enemies.(如果没有,自行新建Layer)

Unity 如何使碰撞仅对特定物体有效Unity 如何使碰撞仅对特定物体有效

3、设置好Layer以后,在菜单找到Edit->Project Settings->Physics2D并打开。

Unity 如何使碰撞仅对特定物体有效

4、我们展开Layer Collision Matrix部分,可以看到一个矩阵。这个矩阵描述了哪个Layer可以与那个Layer发生碰撞。

Unity 如何使碰撞仅对特定物体有效

5、如图,我们勾选Enemies-Enemies对应的那个方框,看到所有的敌人对象立刻发生碰撞相互排斥了。

Unity 如何使碰撞仅对特定物体有效

6、如果在代码中访问,我们使用Physics2D.SetLayerCollisionMask(LayerMask.NameToLayer("Enemies"),LayerMask.GetMask("Enemies","Ground"));这种方法。第一个参数是带设置的Layer,第二个参数是可以与该Layer发生碰撞的Mask. 运行一下,我们就看到碰撞矩阵发生了变化。

Unity 如何使碰撞仅对特定物体有效Unity 如何使碰撞仅对特定物体有效
  • 真理之杖攻略
  • 堕落之王主线任务“修道院围墙”过关流程攻略
  • steam怎么验证游戏的完整性?
  • 遗迹灰烬重生召唤流怎么玩
  • 遗迹灰烬重生咆哮钥匙怎么获得
  • 热门搜索
    硬度不够怎么办 脚扭伤了怎么办 怎么扎马尾好看又简单 脚扭了怎么办 陌陌怎么玩 电脑自动休眠怎么取消 烫伤后起水泡怎么处理 颐字怎么读 老年斑是怎么形成的 怎么预防近视