LayerMask实际上是一个位码操作,在Unity3D中一共有32个Layer层,并且不可增加。
Unity-LayerMask层级操作
在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.

相关文章:

  • 2021-11-01
  • 2021-06-29
  • 2021-11-09
  • 2021-11-11
  • 2021-12-26
  • 2022-12-23
  • 2021-12-07
  • 2021-11-15
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2021-07-01
  • 2021-12-11
  • 2021-12-06
  • 2022-12-23
  • 2021-10-09
相关资源
相似解决方案