レイヤーの切り替えをスクリプトからできるようにしましょう。
属するレイヤーに応じて、MainCameraの撮影対象を切り分けていきます。
クリックすると、Cubeのレイヤーが変更され、MainCameraの視界から消えます。
関連記事:
MainCameraがオブジェクトを追従
同じタグのついたオブジェクトだけを消す
カリングマスクで複数レイヤーを投影
カリングマスクでレイヤーを順に追加
レイヤーの順序をスクリプトから変える
プレーヤーについていくカメラ
MainCameraで四方向から撮影
スクリプトからレイヤーを変える
レイヤーを追加して、8番のレイヤー名をshowに、9番をhideにします。
Cubeと空のオブジェクト(GameObject)を作成します。
Layerchange.csを作成し、GameObjectに追加します。
Layerchange.csを記述します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
using System.Collections; using System.Collections.Generic; using UnityEngine; public class LayerChange : MonoBehaviour { [SerializeField] GameObject cube; [SerializeField] Camera cam; void Start() { cam.cullingMask = 1 << 8; cube.layer = 8; } void Update() { if (Input.GetMouseButtonDown(0)) { cube.layer = 9; } } } |
キューブとCamのフィールドに、それぞれのオブジェクトを入れます。
ゲームプレイして、画面をクリックしましょう。
Cubeのレイヤーが、スタート時はshow、クリックするとHideに切り替わります。
MainCameraのカリングマスクは、スタート時にはshowのレイヤーに。
カリングマスクで、カメラに表示させるレイヤーは、このように書きます。
cam.cullingMask = 1 << x;
xには、MainCameraに表示させるレイヤー番号を入れます。
関連記事:
MainCameraがオブジェクトを追従
同じタグのついたオブジェクトだけを消す
カリングマスクで複数レイヤーを投影
カリングマスクでレイヤーを順に追加
レイヤーの順序をスクリプトから変える
プレーヤーについていくカメラ
MainCameraで四方向から撮影