みなさん、こんにちは。ぽうひろです。
今日は、赤、青、黄と変わる信号機の光を作ってみます。
信号機は各自でアセットを買うなどしてご用意くださいw。
私はSimpleTownアセットを利用しています。
信号の子オブジェクトでEmptyGameObjectを作り、その下にLightオブジェクトを3つ作ります。
LightはSpotLightで、Colorを赤、青、黄にそれぞれ設定し、DrawHaloにチェックを入れるとそれっぽく光って見えます。
こんな感じになってます。
これだけだと3色同時に光るだけなので、Scriptを入れます。
最初に作ったEmptyObjectにScriptを足して、3つの光を変数セットします。
Scriptはこんな感じで書きます。
public Light red; public Light yellow; public Light green; private float timer; // Use this for initialization void Start () { //最初は全部消す red.enabled = false; yellow.enabled = false; green.enabled = false; } // Update is called once per frame void Update () { //タイマーカウントアップ timer += Time.deltaTime; if (timer < 5f) { //5秒未満は赤表示 red.enabled = true; yellow.enabled = false; green.enabled = false; } if(timer >= 5f && timer < 10f){ //5秒以上、10秒未満はグリーン表示 green.enabled = true; yellow.enabled = false; red.enabled = false; } if(timer >= 10f){ //10秒以上は黄色 yellow.enabled = true; red.enabled = false; green.enabled = false; } if(timer > 12f){ //12秒以上だったらタイマーリセット timer = 0f; } }
実行結果はこうなりました!(Lightアイコンが邪魔ですが許してください・・・)
1つのLightを移動させてColorを変えてもオブジェクト節約できて良いかもしれません。
信号を制御してみたい方は是非トライしてみてください。
それではまた!!