遇到的问题是:假设有A B C三个刚体,请问该如何设置才能让A B 之间不做碰撞检测,碰到了可以直接穿过去,但同时要求对C物体做碰撞检测呢?这情况要考虑三个刚体在一起的情况。
上面的问题可以通过分层进行设置哪个层可以进行碰撞,哪个层不碰撞即可解决。
在 Unity 3.x 中,我们引入了基于层的碰撞检测。它是让游戏对象 (Game Object) 与另一个绑定到特定层的特定游戏对象 (Game Object) 碰撞的一种方式。

与自己的层碰撞的对象。
在上图中,您能看见 6 个游戏对象 (GameObject)(3 个平面、3 个立方体)和右侧的“碰撞矩阵”(Collision Matrix),该矩阵说明哪些对象 (Object) 可以与哪层碰撞。在该示例中,我们将“碰撞矩阵”(Collision Matrix) 设置为仅属于相同层的游戏对象 (GameObject) 可以碰撞。
设置游戏对象 (GameObject) 来基于层检测碰撞
-
选择游戏对象 (Game Object) 将所属的层
-
对每个游戏对象 (Game Object) 重复第 1 步,直到将所有游戏对象 (Game Object) 分配给层。
-
通过单击
-
通过勾选来选择“碰撞矩阵”(Collision Matrix) 上哪些层将与其他层交互。