Unity的选择碰撞--碰撞矩阵(Collision Matrix)

时间:2024-04-08 18:38:59

上一篇博文上主要结合了射线检测以及LayerMask实现射线检测的选择性,这次介绍一下Unity的内置碰撞矩阵(Collision Matrix)实现碰撞体之间的选择碰撞。

首先新建场景,创建两个Cube以及一个Panel,给两个Cube加入BoxCollider,Rigidbody以及加入不同的Material以区分显示,给三个物体加上LayerMask分别为RedCube,BlueCube以及Panel

Unity的选择碰撞--碰撞矩阵(Collision Matrix)

Unity的选择碰撞--碰撞矩阵(Collision Matrix)

并打开Edit–>Project Settings–>Physics,打开碰撞矩阵
Unity的选择碰撞--碰撞矩阵(Collision Matrix)

修改为
Unity的选择碰撞--碰撞矩阵(Collision Matrix)


运行效果:
Unity的选择碰撞--碰撞矩阵(Collision Matrix)

可以看到RedCube跟Panel发生碰撞而BlueCube忽视跟Panel碰撞,这里回顾一下修改后的碰撞矩阵可以知道,我们已经取消了Panel层跟BlueCube层的碰撞,所以产生了这种效果。

使用场景:合金弹头的玩家跟地面能发生碰撞,但不能跟自己发射的子弹和敌人发生碰撞,敌人的机制跟玩家一样。

这篇的博文就到这里,我们下一期再见!