W@のブログ(仮)

テキトーになんか書いていく予定。

RaycastでLayerMaskを使う【Raycast】

Raycastを使うとき

Physics.Raycast(Ray ray, out RaycastHit hit, float maxDistance, int layerMask)

をよく使うが、

このlayerMaskに、

LayerMask.NameToLayer("Layer")

って入れても無駄!

LayerMask.NameToLayer()で返って来るのはレイヤー番号。LayerMaskじゃない。

マスクにするにはレイヤー番号だけ1をビットシフトしろ!

1 << LayerMask.NameToLayer("Layer")

 

ちなみに、

LayerMaskは指定したLayerにのみ当たるようにするもの。

指定レイヤー以外に当てるようにしたいのならビット反転しろ!

~(1 << LayerMask.NameToLayer("Layer"))

以上。