どうぶつの森みたいな、現在時刻に応じて明るくなったり夕焼けしたり暗くなったりという機能を作りたかったので、簡単にですがやってみました。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
//現在時刻に応じてシーン内の照明の色を変える
public class TimeLightManager : MonoBehaviour {
[SerializeField] Color[] lightColors;
[SerializeField] Light sceneLight;
void Awake(){
int hour = System.DateTime.Now.Hour;
int month = System.DateTime.Now.Month;
int value;
if (month == 1 || month == 11 || month == 12) { //冬
value = 1;
} else if (month == 5 || month == 6 || month == 7) { //夏
value = -1;
} else { //春秋
value = 0;
}
if (hour < 5 + value) { //夜中
sceneLight.color = lightColors [0];
} else if (hour < 8 + value) { //朝
sceneLight.color = lightColors [1];
} else if (hour < 17 - value) { //昼
sceneLight.color = lightColors [2];
} else if (hour < 18 - value) { //夕方
sceneLight.color = lightColors [3];
} else if (hour < 22 - value) { //夜
sceneLight.color = lightColors [4];
} else { //夜中
sceneLight.color = lightColors [0];
}
}
}
[SerializeField] Color[] lightColors;
[SerializeField] Light sceneLight;
ここに各時間帯の照明の色と、シーン内の照明(基本的にはDirectional Light)をインスペクタから指定してください。
参考までに僕の設定した色を示しておきます。
上から順に朝(#E5FFFCFF)、昼(#FFF4D6FF)、夕方(#C98F3AFF)、夜(#4D4962FF)、夜中(#0A0613FF)です。
昼は初期設定のままにしました。
ちなみにこの画像は『鉄骨ワタリ』というゲームからです↓
ちょっとセクシーな女性がヒヤヒヤ命がけ!『鉄骨ワタリ』
鉄骨ワタリYusuke Nakajimaゲーム評価:無料 何処かも分からない山奥。無限に続く一本の鉄骨。その鉄骨を渡り続ける一人の女。月日が流れた。女は成長を繰り返し、人間離れした能力を持つ......*****************...
朝とか夜中なんていらない!って人や、もっと滑らかに色を変えたい!って人は好きなようにカスタマイズしてください。
海外にはあんまり対応してない(南半球だとそもそも夏冬逆だし笑)ので、ご注意。
コメント