LayerMask实际上是一个位码操作,在Unity3D中一共有32个Layer层,并且不可增加。
在Unity官方中给出的描述是:
Layers通常被摄像机用来渲染部分场景,和灯光照射部分场景使用。但是它们也可以用来做射线检测时忽略一些collider或Collision使用。
在代码中使用时如何开启某个Layers?
LayerMask mask = 1 << 你需要开启的Layers层。
LayerMask mask = 0 << 你需要关闭的Layers层。
比如:
LayerMask mask = 1 << 2; 表示开启Layer2。
LayerMask mask = 0 << 5;表示关闭Layer5。
LayerMask mask = 1<<2|1<<8;表示开启Layer2和Layer8。
LayerMask mask = 0<<3|0<<7;表示关闭Layer3和Layer7。
上面也可以写成:
LayerMask mask = ~(1<<3|1<<7);表示关闭Layer3和Layer7。
LayerMask mask = 1<<2|0<<4;表示开启Layer2并且同时关闭Layer4.