MainCameraの撮影できる対象に、CullingMaskの中のレイヤーを追加できるようにしましょう。
クリックするたびに、レイヤーが追加され、それぞれのレイヤーに属するオブジェクトが順に表示されます。
カメラ投影の対象を、カリングマスクから増やしていくスクリプトです。
関連記事:
レイヤーによるMainCameraの非表示
同じタグのついたオブジェクトだけを消す
カリングマスクで複数レイヤーを投影
レイヤーの順序をスクリプトから変える
CullingMaskの対象レイヤーを追加
GameObject(空のオブジェクト)、Cube、Sphere、Capsule、Cylinderを作成します。
4つのオブジェクトを適当なところに配置します。
ゲームビューではこのように見えています。
レイヤー8~11に、以下の名前で作成します。
(後からレイヤー名を変更したいときは、「レイヤーを追加」からいつでも変更可能です。)
それぞれのオブジェクトに、違うレイヤーを設定します。
AddLayer.csを作成し、GameObjectに追加します。
AddLayer.csを記述します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
using System.Collections; using System.Collections.Generic; using UnityEngine; public class AddLayer : MonoBehaviour { [SerializeField] Camera cam; private int count; void Start() { cam.cullingMask = 1 << 0; count = 8; } void Update() { if (Input.GetMouseButtonDown(0)) { cam.cullingMask |= (1 << count); count++; } } } |
Camのフィールドに、MainCameraを入れます。
ゲームプレイしましょう。
画面をクリックするたびに、カリングマスクのレイヤーが追加され、該当のレイヤーが順に表示されます。
カリングマスクを見てみると、8番から順に追加されていることがわかります。
関連記事:
レイヤーによるMainCameraの非表示
同じタグのついたオブジェクトだけを消す
カリングマスクで複数レイヤーを投影
レイヤーの順序をスクリプトから変える