Unity事例ノート

UNITY

カリングマスクで複数レイヤーを投影

MainCameraの撮影できるレイヤーを、カリングマスクで複数選択して、切り替えてみましょう。

左クリックすれば、キューブとカプセル表示され、右クリックすれば、スフィアとシリンダーが表示されます。

クリック操作によって、CullingMaskの対象を、スクリプトから変更できるようにしています。

所属するレイヤーごとに、MainCameraでの表示、非表示を切り分けることができます。

関連記事:
【Unity C#】レイヤーによるMainCameraの非表示
【Unity C#】同じタグのついたオブジェクトだけを消す
【Unity C#】カリングマスクでレイヤーを順に追加

CullingMaskで2つ以上のレイヤーを指定

GameObject(空のオブジェクト)、Cube、Sphere、Capsule、Cylinderを作成します。

4つのオブジェクトを適当なところに配置します。

ゲームビューではこのように見えています。

レイヤー8~11に、以下の名前で作成します。

(後からレイヤー名を変更したいときは、「レイヤーを追加」からいつでも変更可能です。)

それぞれのオブジェクトに、違うレイヤーを設定します。

LayerChange.csを作成し、GameObjectに追加しましょう。

LayerChange.csを記述します。

Camのフィールドに、MainCameraを入れます。

ゲームプレイしてみましょう。

左クリックを押すと、レイヤー8番と10番だけが表示。

右クリックを押すと、レイヤー9番と11番だけが表示されます。

MainCameraのカリングマスクを見てみると、クリックのたびに、レイヤーの選択が切り替わっているのが確認できます。

カリングマスクの複数指定は、以下のようにコードを書きます。

cam.cullingMask = (1 << x) + (1 << y) ;

xとyはレイヤ番号を入れ、+で繋げます。

関連記事:
【Unity C#】レイヤーによるMainCameraの非表示
【Unity C#】同じタグのついたオブジェクトだけを消す
【Unity C#】カリングマスクでレイヤーを順に追加