Unityでオブジェクトを1秒間隔で順番に点灯させる方法

C言語関連

Unityで複数のオブジェクトを順番に点灯させる演出は、チュートリアルやライトショー、UI演出など様々な場面で使われます。特に、1つのオブジェクトが点灯している間は他は消灯する場合、スクリプトで制御するのが一般的です。

この記事では、5個のオブジェクトを1秒ごとに順番に点灯させる基本的な方法を、初心者にもわかりやすく解説します。

基本的な考え方

まず、オブジェクトは配列やリストで管理します。現在点灯させたいオブジェクトのインデックスを保持し、1秒ごとに次のインデックスに切り替えることで順番に点灯させます。

点灯・消灯はマテリアルの色変更で行うのが簡単です。白色で点灯、黒色で消灯とします。

C#スクリプトの例

UnityのC#スクリプトで以下のように記述できます。

using UnityEngine;using System.Collections;public class SequentialLight : MonoBehaviour{    public GameObject[] objects; // 5つのオブジェクトをInspectorで設定    private int currentIndex = 0;    void Start()    {        StartCoroutine(LightSequence());    }    IEnumerator LightSequence()    {        while (true)        {            for (int i = 0; i < objects.Length; i++)            {                SetColor(objects[i], i == currentIndex ? Color.white : Color.black);            }            currentIndex = (currentIndex + 1) % objects.Length;            yield return new WaitForSeconds(1f);        }    }    void SetColor(GameObject obj, Color color)    {        Renderer renderer = obj.GetComponent();        if (renderer != null)        {            renderer.material.color = color;        }    }}

このスクリプトを空のGameObjectにアタッチし、Inspectorで5個のオブジェクトを登録すると、1秒間隔で順番に点灯・消灯が繰り返されます。

応用例

応用として、点灯速度を変えたい場合は WaitForSeconds(秒数) の値を変更します。さらに、色やエフェクトを追加することで視覚的な演出を強化できます。

また、オブジェクト数を増やす場合も、配列に追加するだけで順番制御が自動で機能します。

まとめ

Unityで複数オブジェクトを1秒ごとに順番に点灯させるには、配列管理とCoroutineによるタイマー処理が基本です。マテリアルの色を切り替えるだけで、シンプルに順番点灯の演出が可能です。

この方法を応用すれば、点灯パターンのカスタマイズや複雑なライト演出も簡単に実装できます。

コメント

タイトルとURLをコピーしました