Version: Unity 6.0 (6000.0)
言語 : 日本語
レイヤーとレイヤーマスク
レイヤーマスクの設定

レイヤーマスクの概要

すべてのゲームオブジェクトは個々のレイヤー上に存在します。Unity API では影響を与えるレイヤーを設定できますが、直接レイヤーを使用するわけではありません。代わりにレイヤーマスクを使用します。

レイヤー は標準の整数ですが、レイヤーマスク はビットマスクとしてフォーマットされた整数で、1 は含まれるレイヤーを表し、0 は除外されるレイヤーを表します。レイヤーとレイヤーマスクは同じ基本の型を使用しているので、レイヤーマスクを想定する API にレイヤーを渡した場合でも、スクリプトがコンパイルされます。ただし、API 呼び出しは想定した動作になりません。

例えば、レイヤー 9 のゲームオブジェクトに対して RayCast を実行したい場合、Physics.Raycast の呼び出し内に 9 をレイヤーマスクとして渡すと、Unity は実際にはレイヤー 30 のゲームオブジェクトに対してレイキャストを実行します。これは、9 のバイナリ表現が 00001001 であり、これをマスクとして解釈すると 1 がレイヤー 30 にあるからです。

レイヤーとレイヤーマスク
レイヤーマスクの設定