スポットライトの点灯を、スクリプトから制御できるようにしましょう。
今回の例では、3つのスポットライトを用意。
1~3の数字キーで各ライトを点灯させ、0.5秒後に消灯します。
関連記事:
ライトの明るさをスクリプトから操作
スポットライトを点滅
ライトの色をスクリプトから変化させる
識別番号によって処理を切り替える
複数地点から順番にPrefabを生成
点灯したスポットライトをn秒後に消す
平面オブジェクト(Plane)を作成し、カラーを黒にしました。
SpotLightを作成し、位置と強度を変更します。
SpotLightを複製し、全部で3個作成します。
3つのSpotLightを横並びに配置します。
空のオブジェクトを作成します。
LightManager.csを作成し、空のオブジェクト(GameObject)に追加します。
LightManager.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 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
using System.Collections; using System.Collections.Generic; using UnityEngine; public class LightManager : MonoBehaviour { [SerializeField] GameObject[] spotLights = new GameObject[3]; void Start() { foreach(GameObject SLight in spotLights) { SLight.SetActive(false); } } void Update() { if(Input.GetKeyDown(KeyCode.Alpha1)) { StartCoroutine(PushButton(0)); } if(Input.GetKeyDown(KeyCode.Alpha2)) { StartCoroutine(PushButton(1)); } if(Input.GetKeyDown(KeyCode.Alpha3)) { StartCoroutine(PushButton(2)); } } IEnumerator PushButton(int keyNum) { spotLights[keyNum].SetActive(true); yield return new WaitForSeconds(0.5f); spotLights[keyNum].SetActive(false); } } |
配列の要素0~2の中に、それぞれSpotLightオブジェクトを入れます。
ゲームプレイして、数字キー1~3を押してみましょう。
該当のスポットライトが点灯して、0.5秒後に消灯します。
関連記事:
ライトの明るさをスクリプトから操作
スポットライトを点滅
ライトの色をスクリプトから変化させる
識別番号によって処理を切り替える
複数地点から順番にPrefabを生成