上一篇博文上主要结合了射线检测以及LayerMask实现射线检测的选择性,这次介绍一下Unity的内置碰撞矩阵(Collision Matrix)实现碰撞体之间的选择碰撞。
首先新建场景,创建两个Cube以及一个Panel,给两个Cube加入BoxCollider,Rigidbody以及加入不同的Material以区分显示,给三个物体加上LayerMask分别为RedCube,BlueCube以及Panel
并打开Edit–>Project Settings–>Physics,打开碰撞矩阵
修改为
运行效果:
可以看到RedCube跟Panel发生碰撞而BlueCube忽视跟Panel碰撞,这里回顾一下修改后的碰撞矩阵可以知道,我们已经取消了Panel层跟BlueCube层的碰撞,所以产生了这种效果。
使用场景:合金弹头的玩家跟地面能发生碰撞,但不能跟自己发射的子弹和敌人发生碰撞,敌人的机制跟玩家一样。
这篇的博文就到这里,我们下一期再见!