77 lines
2.1 KiB
C#
77 lines
2.1 KiB
C#
using Enviro;
|
|
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
using static UnityEngine.Rendering.DebugUI.Table;
|
|
|
|
public class LightManager : MonoBehaviour
|
|
{
|
|
public enum SwitchCondition { turnON,turnOFF};
|
|
|
|
|
|
|
|
SwitchCondition currentCondition;
|
|
SwitchCondition lightCondition;
|
|
private List<Light> streetLightingAndAutomativeLighting;
|
|
// Start is called before the first frame update
|
|
void Start()
|
|
{
|
|
var streetLightings=GameObject.FindGameObjectsWithTag("StreetLighting");
|
|
var automativeLightings = GameObject.FindGameObjectsWithTag("AutomativeLighting");
|
|
streetLightingAndAutomativeLighting = new List<Light>();
|
|
for (int i = 0; i < streetLightings.Length; i++)
|
|
{
|
|
streetLightingAndAutomativeLighting.Add(streetLightings[i].GetComponent<Light>());
|
|
}
|
|
for (int i = 0; i < automativeLightings.Length; i++)
|
|
{
|
|
streetLightingAndAutomativeLighting.Add(automativeLightings[i].GetComponent<Light>());
|
|
}
|
|
|
|
UpdateLight();
|
|
}
|
|
|
|
// Update is called once per frame
|
|
void Update()
|
|
{
|
|
//System.DateTime now = System.DateTime.Now;
|
|
int hour = Enviro.EnviroManager.instance.Time.hours;
|
|
if (hour >= 6 && hour <= 18)
|
|
{
|
|
currentCondition = SwitchCondition.turnOFF;
|
|
}
|
|
else
|
|
{
|
|
currentCondition = SwitchCondition.turnON;
|
|
}
|
|
|
|
if (currentCondition != lightCondition)
|
|
{
|
|
UpdateLight();
|
|
}
|
|
}
|
|
|
|
void UpdateLight()
|
|
{
|
|
|
|
int hour = Enviro.EnviroManager.instance.Time.hours;
|
|
//System.DateTime now = System.DateTime.Now;
|
|
if (hour >= 6 && hour <= 18)//°×Ìì
|
|
{
|
|
lightCondition = SwitchCondition.turnOFF;
|
|
foreach (var light in streetLightingAndAutomativeLighting)
|
|
{
|
|
light.enabled = false;
|
|
}
|
|
}
|
|
else//ÍíÉÏ
|
|
{
|
|
lightCondition = SwitchCondition.turnON;
|
|
foreach (var light in streetLightingAndAutomativeLighting)
|
|
{
|
|
light.enabled = true;
|
|
}
|
|
}
|
|
}
|
|
}
|