You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

192 lines
4.4 KiB
C#

3 years ago
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
namespace EnviroSamples
{
public class DemoUI : MonoBehaviour {
public UnityEngine.UI.Slider sliderTime;
UnityEngine.UI.Slider sliderQuality;
public UnityEngine.UI.Text timeText;
public UnityEngine.UI.Text weatherText;
public UnityEngine.UI.Text temperatureText;
public UnityEngine.UI.Dropdown weatherDropdown;
//UnityEngine.UI.Dropdown seasonDropdown;
//bool seasonmode = true;
//bool fastdays = false;
private bool started = false;
void Start ()
{
if(EnviroSkyMgr.instance == null || !EnviroSkyMgr.instance.IsAvailable())
{
this.enabled = false;
return;
}
EnviroSkyMgr.instance.OnWeatherChanged += (EnviroWeatherPreset type) =>
{
UpdateWeatherSlider ();
};
/*EnviroSkyMgr.instance.OnSeasonChanged += (EnviroSeasons.Seasons season) =>
{
UpdateSeasonSlider(season);
};*/
}
IEnumerator setupDrodown ()
{
started = true;
yield return new WaitForSeconds (0.1f);
for (int i = 0; i < EnviroSkyMgr.instance.GetCurrentWeatherPresetList().Count; i++) {
UnityEngine.UI.Dropdown.OptionData o = new UnityEngine.UI.Dropdown.OptionData();
o.text = EnviroSkyMgr.instance.GetCurrentWeatherPresetList()[i].Name;
weatherDropdown.options.Add (o);
}
yield return new WaitForSeconds (0.1f);
UpdateWeatherSlider ();
}
public void ChangeTimeSlider ()
{
if (sliderTime.value < 0f)
sliderTime.value = 0f;
EnviroSkyMgr.instance.SetTimeOfDay (sliderTime.value * 24f);
}
public void ChangeCloudQuality(int value)
{
#if ENVIRO_HD
EnviroSky.instance.ApplyVolumeCloudsQualityPreset(value);
#endif
}
public void ChangeAmbientVolume (float value)
{
EnviroSkyMgr.instance.ambientAudioVolume = value;
}
public void SetTimeOfDay (float value)
{
EnviroSkyMgr.instance.SetTimeOfDay(value);
}
public void ChangeWeatherVolume (float value)
{
EnviroSkyMgr.instance.weatherAudioVolume = value;
}
public void SetWeatherID (int id)
{
EnviroSkyMgr.instance.ChangeWeather (id);
}
public void SetVolumeClouds(bool b)
{
EnviroSkyMgr.instance.useVolumeClouds = b;
}
public void SetVolumeLighting(bool b)
{
EnviroSkyMgr.instance.useVolumeLighting = b;
}
public void SetFlatClouds(bool b)
{
EnviroSkyMgr.instance.useFlatClouds = b;
}
public void SetParticleClouds(bool b)
{
EnviroSkyMgr.instance.useParticleClouds = b;
}
public void SetSunShafts(bool b)
{
EnviroSkyMgr.instance.useSunShafts = b;
}
public void SetMoonShafts(bool b)
{
EnviroSkyMgr.instance.useMoonShafts = b;
}
public void SetSeason (int id)
{
switch (id)
{
case 0:
EnviroSkyMgr.instance.ChangeSeason (EnviroSeasons.Seasons.Spring);
break;
case 1:
EnviroSkyMgr.instance.ChangeSeason (EnviroSeasons.Seasons.Summer);
break;
case 2:
EnviroSkyMgr.instance.ChangeSeason (EnviroSeasons.Seasons.Autumn);
break;
case 3:
EnviroSkyMgr.instance.ChangeSeason (EnviroSeasons.Seasons.Winter);
break;
}
}
public void SetTimeProgress (int id)
{
switch (id)
{
case 0:
EnviroSkyMgr.instance.SetTimeProgress(EnviroTime.TimeProgressMode.None);
break;
case 1:
EnviroSkyMgr.instance.SetTimeProgress(EnviroTime.TimeProgressMode.Simulated);
break;
case 2:
EnviroSkyMgr.instance.SetTimeProgress(EnviroTime.TimeProgressMode.SystemTime);
break;
}
}
void UpdateWeatherSlider ()
{
if (EnviroSkyMgr.instance.GetCurrentWeatherPreset() != null) {
for (int i = 0; i < weatherDropdown.options.Count; i++) {
if (weatherDropdown.options [i].text == EnviroSkyMgr.instance.GetCurrentWeatherPreset().Name)
weatherDropdown.value = i;
}
}
}
void Update ()
{
if (!EnviroSkyMgr.instance.IsStarted())
return;
else {
if(!started)
StartCoroutine(setupDrodown ());
}
timeText.text = EnviroSkyMgr.instance.GetTimeString ();
if(EnviroSkyMgr.instance.GetCurrentWeatherPreset() != null)
weatherText.text = EnviroSkyMgr.instance.GetCurrentWeatherPreset().Name;
temperatureText.text = EnviroSkyMgr.instance.GetCurrentTemperatureString();
}
void LateUpdate ()
{
sliderTime.value = EnviroSkyMgr.instance.GetTimeOfDay() / 24f;
}
}
}