Esto es lo que aplicado en mi CV ambientado en Diablo 2.
Captura
Demo
Comentarios
Para explicar un poco el siguiente código lo que hace es mirar la hora local y según si es de día (entre 6:00 y 21:00) o de noche (entre 21:00 y 6:00) hace una serie de cosas:
Si es de día...
1. Reproduce un sonido de pájaros (objeto SonidoFondoDia tipo AudioSource)
2. Busca las luces de las antorchas etiquetadas como Fire y las desactiva.
Si es de noche...
1. Reproduce de forma aleatoria entre dos sonidos (objeto SonidoFondoNoche1 y SonidoFondoNoche2 tipo AudioSource)
2. Busca el objeto Day_Light tipo Light y lo desactiva.
Código
Este código lo he metido en un script y lo he añadido como componente al personaje aunque lo podría haber puesto en un nuevo Game Object para tenerlo separado y ordenado.
void Awake(){
System.DateTime CurrentDate = new System.DateTime();
CurrentDate = System.DateTime.Now;
int hora = CurrentDate.Hour;
// noche
if( hora > 20 || hora < 7 ){
AudioSource SonidoFondoNoche;
int rand = Random.Range(0, 2);
if( rand == 1 ){
SonidoFondoNoche = GameObject.Find("SonidoFondoNoche1").GetComponent<AudioSource>();
}else{
SonidoFondoNoche = GameObject.Find("SonidoFondoNoche2").GetComponent<AudioSource>();
}
SonidoFondoNoche.Play(0);
GameObject.Find("Day_Light").GetComponent<Light>().enabled = false;
// dia
}else{
GameObject.Find("SonidoFondoDia").GetComponent<AudioSource>().Play(0);
GameObject.Find("Day_Light").GetComponent<Light>().enabled = true;
GameObject[] fires = GameObject.FindGameObjectsWithTag("Fire");
foreach (GameObject fire in fires)
{
fire.SetActive(false);
}
}
}