Files
3d-bxqz/Assets/Scripts/LightManager/LightManager.cs
2026-05-06 17:36:41 +08:00

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;
}
}
}
}