我想检查击中光线投射的对象层是否是玩家要做某事的。
我首先尝试了这个:
if (hit.transform.gameObject.layer == player)
其中 hit 是 RayCastHit,player 是 Layermask
在调试时,我发现这由于某种原因有效:
if (hit.transform.gameObject.layer == 8)
但这并不
if (hit.transform.gameObject.layer == player.value)
我很困惑。谁能解释一下吗?
Layer 和 LayerMask 是不同的,例如您在索引 8 处定义了一个名为“Player”的图层,那么您可以使用以下命令检索该图层:
layer
的值为8
。如果你这样做:
然后你得到一个位掩码,它的值为
1 << 8
。图层蒙版能够表示多个图层,可以在某些方法中使用,例如Physics.Raycast