Files
2026-02-21 16:45:37 +08:00

150 lines
2.9 KiB
C#

using System.Collections;
using UnityEngine;
using UnityEngine.UI;
public class DemoUI : MonoBehaviour
{
public Slider sliderTime;
public Slider sliderQuality;
public Text timeText;
public Text weatherText;
public Dropdown weatherDropdown;
private bool seasonmode = true;
private bool fastdays;
private void Start()
{
StartCoroutine(setupDrodown());
}
private IEnumerator setupDrodown()
{
yield return new WaitForSeconds(0.1f);
for (int i = 0; i < EnviroSky.instance.Weather.WeatherTemplates.Count; i++)
{
Dropdown.OptionData optionData = new Dropdown.OptionData();
optionData.text = EnviroSky.instance.Weather.WeatherTemplates[i].Name;
weatherDropdown.options.Add(optionData);
}
weatherDropdown.value = 0;
}
public void ChangeTimeSlider()
{
if (sliderTime.value < 0.01f)
{
sliderTime.value = 0.01f;
}
EnviroSky.instance.GameTime.Hours = sliderTime.value * 24f;
}
public void ChangeQualitySlider()
{
EnviroSky.instance.Quality.GlobalParticleEmissionRates = sliderQuality.value;
}
public void SetWeatherID(int id)
{
EnviroSky.instance.SetWeatherOverwrite(id);
}
public void OverwriteSeason()
{
if (!seasonmode)
{
seasonmode = true;
EnviroSky.instance.Seasons.calcSeasons = true;
}
else
{
seasonmode = false;
EnviroSky.instance.Seasons.calcSeasons = false;
}
}
public void FastDays()
{
if (!fastdays)
{
fastdays = true;
EnviroSky.instance.GameTime.DayLengthInMinutes = 0.2f;
}
else
{
fastdays = false;
EnviroSky.instance.GameTime.DayLengthInMinutes = 5f;
}
}
public void SetSeasonSpring()
{
EnviroSky.instance.ChangeSeason(SeasonVariables.Seasons.Spring);
}
public void SetSeasonSummer()
{
EnviroSky.instance.ChangeSeason(SeasonVariables.Seasons.Summer);
}
public void SetSeasonAutumn()
{
EnviroSky.instance.ChangeSeason(SeasonVariables.Seasons.Autumn);
}
public void SetSeasonWinter()
{
EnviroSky.instance.ChangeSeason(SeasonVariables.Seasons.Winter);
}
public void ToggleShadows(bool i)
{
EnviroSky.instance.Quality.CloudsShadowCast = i;
}
public void SetFog(bool i)
{
EnviroSky.instance.Fog.AdvancedFog = i;
}
public void SetClouds(int i)
{
if (i == 0)
{
EnviroSky.instance.Quality.CloudsQuality = EnviroQualitySettings.CloudQuality.None;
}
if (i == 1)
{
EnviroSky.instance.Quality.CloudsQuality = EnviroQualitySettings.CloudQuality.OneLayer;
}
if (i == 2)
{
EnviroSky.instance.Quality.CloudsQuality = EnviroQualitySettings.CloudQuality.TwoLayer;
}
}
private void Update()
{
if (EnviroSky.instance.started)
{
int num = (int)EnviroSky.instance.GameTime.Hours;
timeText.text = num + ":00";
if (EnviroSky.instance.Weather.currentActiveWeatherID != null)
{
weatherText.text = EnviroSky.instance.Weather.currentActiveWeatherID.Name;
}
ChangeQualitySlider();
}
}
private void LateUpdate()
{
sliderTime.value = EnviroSky.instance.GameTime.Hours / 24f;
}
}