这里应该提醒一下观众,layer这里使用的是位运算。这种方式效率最高,且必须掌握。
在 Unity 中,LayerMask
和 GameObject.layer
虽然都是与层级相关的概念,但它们的类型不同,无法直接进行相等比较:
GameObject.layer
是一个int
值,表示该游戏对象所属的具体层级编号。LayerMask
是一个 位掩码(通常是一个int
),其中每一位代表一个层级是否被选中。因此它实际上是多个层级的组合。
由于这两者的不同:
- 直接使用
LayerMask
和GameObject.layer
进行==
比较是不正确的,因为LayerMask
是位掩码,包含多个层级,而GameObject.layer
仅仅是一个层级的整数编号。