Files
aibis-dream/Assets/Scripts/SceneManagement/EnvironmentKit/EnvironmentManager.cs
T

67 lines
1.8 KiB
C#

using System;
using AibisDream.Kit;
using UnityEngine;
using Yarn.Unity;
namespace AibisDream
{
public class EnvironmentManager : Singleton<EnvironmentManager>
{
public TimesOfDay defaultTime;
public Weather defaultWeather;
private AbsScenePart[] _absSceneParts;
public override void OnSingletonInit()
{
_absSceneParts = GetComponentsInChildren<AbsScenePart>(true);
foreach (var part in _absSceneParts)
{
part.Init(defaultTime, defaultWeather);
}
}
public void SetTimeOfDay(string timeOfDay)
{
if (!Enum.TryParse<TimesOfDay>(timeOfDay, out var time))
{
Debug.Log($"{timeOfDay}是不存在的时间");
return;
}
foreach (var part in _absSceneParts)
{
part.OnTimeChange(time);
}
}
public void SetWeather(string weatherType)
{
if (!Enum.TryParse<Weather>(weatherType, out var weather))
{
Debug.Log($"{weatherType}是不存在的时间");
return;
}
foreach (var part in _absSceneParts)
{
part.OnWeatherChange(weather);
}
}
}
public static class EnvironmentYarnCommand
{
[YarnCommand("set_time_of_day")]
public static void SetTimeOfDay(string timeOfDay)
{
EnvironmentManager.Instance.SetTimeOfDay(timeOfDay);
}
[YarnCommand("set_weather")]
public static void SetWeather(string weatherType)
{
EnvironmentManager.Instance.SetWeather(weatherType);
}
}
}