178 lines
7.6 KiB
C#
178 lines
7.6 KiB
C#
using System;
|
|
using UnityEngine;
|
|
using System.Collections;
|
|
|
|
namespace Tenkoku.Demo
|
|
{
|
|
public class ui_tenkokuHandler : MonoBehaviour
|
|
{
|
|
|
|
|
|
public float uiScale = 1.0f;
|
|
|
|
//private bool loadFlag = false;
|
|
private Tenkoku.Core.TenkokuModule tenkokuObject;
|
|
private UnityEngine.UI.CanvasScaler uiCanvasScale;
|
|
|
|
private UnityEngine.UI.Slider sliderTOY;
|
|
private UnityEngine.UI.Slider sliderTOD;
|
|
private UnityEngine.UI.Slider sliderLat;
|
|
private UnityEngine.UI.Slider sliderTmult;
|
|
private UnityEngine.UI.Slider sliderAtSkyBright;
|
|
private UnityEngine.UI.Slider sliderAtNightBright;
|
|
private UnityEngine.UI.Slider sliderAtFog;
|
|
private UnityEngine.UI.Slider sliderAtDensity;
|
|
private UnityEngine.UI.Slider sliderWeAltoStratus;
|
|
private UnityEngine.UI.Slider sliderWeCirrus;
|
|
private UnityEngine.UI.Slider sliderWeCumulus;
|
|
private UnityEngine.UI.Slider sliderWeOvercast;
|
|
private UnityEngine.UI.Slider sliderWeRain;
|
|
private UnityEngine.UI.Slider sliderWeSnow;
|
|
private UnityEngine.UI.Slider sliderWeWind;
|
|
private UnityEngine.UI.Slider sliderWeWindD;
|
|
private UnityEngine.UI.Slider sliderWeLightning;
|
|
private UnityEngine.UI.Slider sliderWeRainbow;
|
|
private UnityEngine.UI.Slider sliderliang;
|
|
|
|
private UnityEngine.UI.Text textTOY;
|
|
private UnityEngine.UI.Text textTOD;
|
|
private UnityEngine.UI.Text textLat;
|
|
private UnityEngine.UI.Text textTmult;
|
|
|
|
|
|
public float currentTODVal = -1.0f;
|
|
|
|
|
|
void Start () {
|
|
|
|
//get main object
|
|
//tenkokuObject = GameObject.Find("Tenkoku DynamicSky").GetComponent<Tenkoku.Core.TenkokuModule>() as Tenkoku.Core.TenkokuModule;
|
|
tenkokuObject = (Tenkoku.Core.TenkokuModule) FindObjectOfType(typeof(Tenkoku.Core.TenkokuModule));
|
|
|
|
uiCanvasScale = this.transform.GetComponent<UnityEngine.UI.CanvasScaler>() as UnityEngine.UI.CanvasScaler;
|
|
|
|
//find UI objects
|
|
sliderTOY = GameObject.Find("Slider_TimeOfYear").GetComponent<UnityEngine.UI.Slider>() as UnityEngine.UI.Slider;
|
|
sliderTOD = GameObject.Find("Slider_TimeOfDay").GetComponent<UnityEngine.UI.Slider>() as UnityEngine.UI.Slider;
|
|
sliderLat = GameObject.Find("Slider_Latitude").GetComponent<UnityEngine.UI.Slider>() as UnityEngine.UI.Slider;
|
|
sliderTmult = GameObject.Find("Slider_TimeMult").GetComponent<UnityEngine.UI.Slider>() as UnityEngine.UI.Slider;
|
|
sliderAtSkyBright = GameObject.Find("Slider_AtSkyBright").GetComponent<UnityEngine.UI.Slider>() as UnityEngine.UI.Slider;
|
|
sliderAtNightBright = GameObject.Find("Slider_AtNightBright").GetComponent<UnityEngine.UI.Slider>() as UnityEngine.UI.Slider;
|
|
sliderAtFog = GameObject.Find("Slider_AtFog").GetComponent<UnityEngine.UI.Slider>() as UnityEngine.UI.Slider;
|
|
sliderAtDensity = GameObject.Find("Slider_AtDensity").GetComponent<UnityEngine.UI.Slider>() as UnityEngine.UI.Slider;
|
|
sliderWeAltoStratus = GameObject.Find("Slider_WeAltoStratus").GetComponent<UnityEngine.UI.Slider>() as UnityEngine.UI.Slider;
|
|
sliderWeCirrus = GameObject.Find("Slider_WeCirrus").GetComponent<UnityEngine.UI.Slider>() as UnityEngine.UI.Slider;
|
|
sliderWeCumulus = GameObject.Find("Slider_WeCumulus").GetComponent<UnityEngine.UI.Slider>() as UnityEngine.UI.Slider;
|
|
sliderWeOvercast = GameObject.Find("Slider_WeOvercast").GetComponent<UnityEngine.UI.Slider>() as UnityEngine.UI.Slider;
|
|
sliderWeRain = GameObject.Find("Slider_WeRain").GetComponent<UnityEngine.UI.Slider>() as UnityEngine.UI.Slider;
|
|
sliderWeSnow = GameObject.Find("Slider_WeSnow").GetComponent<UnityEngine.UI.Slider>() as UnityEngine.UI.Slider;
|
|
sliderWeWind = GameObject.Find("Slider_WeWind").GetComponent<UnityEngine.UI.Slider>() as UnityEngine.UI.Slider;
|
|
sliderWeWindD = GameObject.Find("Slider_WeWindD").GetComponent<UnityEngine.UI.Slider>() as UnityEngine.UI.Slider;
|
|
sliderWeLightning = GameObject.Find("Slider_WeLightning").GetComponent<UnityEngine.UI.Slider>() as UnityEngine.UI.Slider;
|
|
sliderWeRainbow = GameObject.Find("Slider_WeRainbow").GetComponent<UnityEngine.UI.Slider>() as UnityEngine.UI.Slider;
|
|
|
|
textTOY = GameObject.Find("Text_TimeOfYearText").GetComponent<UnityEngine.UI.Text>() as UnityEngine.UI.Text;
|
|
textTOD = GameObject.Find("Text_TimeOfDayText").GetComponent<UnityEngine.UI.Text>() as UnityEngine.UI.Text;
|
|
textLat = GameObject.Find("Text_LatitudeText").GetComponent<UnityEngine.UI.Text>() as UnityEngine.UI.Text;
|
|
textTmult = GameObject.Find("Text_TimeMultText").GetComponent<UnityEngine.UI.Text>() as UnityEngine.UI.Text;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void LateUpdate(){
|
|
|
|
//CANVAS SCALE
|
|
uiCanvasScale.scaleFactor = uiScale;
|
|
|
|
|
|
//########################
|
|
// SET TENKOKU DATE/TIME
|
|
//########################
|
|
|
|
//set Time of Year
|
|
//tenkokuObject.currentMonth = Mathf.FloorToInt(Mathf.Lerp(1f,12.99f,sliderTOY.value));
|
|
float dayVal = Mathf.Lerp(1f,12.99f,sliderTOY.value)-Mathf.FloorToInt(Mathf.Lerp(1f,12.99f,sliderTOY.value));
|
|
//tenkokuObject.currentDay = Mathf.FloorToInt(Mathf.Lerp(1f,30f,dayVal));
|
|
textTOY.text = tenkokuObject.currentMonth+"/"+tenkokuObject.currentDay+"/"+ tenkokuObject.currentYear;
|
|
|
|
//set Time of Day
|
|
if (sliderTmult.value == 0.0f){
|
|
//tenkokuObject.currentHour = Mathf.FloorToInt(Mathf.Lerp(0f,23f,sliderTOD.value));
|
|
float minuteVal = Mathf.Lerp(0f,23f,sliderTOD.value)-Mathf.FloorToInt(Mathf.Lerp(0f,23f,sliderTOD.value));
|
|
//tenkokuObject.currentMinute = Mathf.FloorToInt(Mathf.Lerp(0f,59f,minuteVal));
|
|
}
|
|
|
|
string setPM = "am";
|
|
int setH = tenkokuObject.currentHour;
|
|
string setM = tenkokuObject.currentMinute.ToString("00");
|
|
//if (setH > 12){
|
|
// setH = setH - 12;
|
|
// setPM = "pm";
|
|
//}
|
|
textTOD.text = setH+":"+setM+setPM+" ("+tenkokuObject.currentHour+":"+setM+")";
|
|
|
|
//Set Time Multiplier
|
|
tenkokuObject.autoTime = true;
|
|
tenkokuObject.timeCompression = Mathf.Lerp(0.0f,2000.0f,sliderTmult.value);
|
|
textTmult.text = Mathf.Lerp(0.0f,2000.0f,sliderTmult.value).ToString("0");
|
|
if (sliderTOD.value >= 1.0f && sliderTmult.value > 0.0f){
|
|
sliderTOD.value = 0.0f;
|
|
// sliderTOY.value += (1.0/365.25);
|
|
}
|
|
|
|
//Set Latitude
|
|
tenkokuObject.setLatitude = Mathf.Floor(Mathf.Lerp(-90.0f,90.0f,sliderLat.value));
|
|
textLat.text = tenkokuObject.setLatitude.ToString();
|
|
|
|
|
|
|
|
//###########################
|
|
// SET TENKOKU ATMOSPHERICS
|
|
//###########################
|
|
tenkokuObject.skyBrightness = Mathf.Lerp(0.0f,5.0f,sliderAtSkyBright.value);
|
|
tenkokuObject.nightBrightness = Mathf.Lerp(0.0f,1.0f,sliderAtNightBright.value);
|
|
tenkokuObject.atmosphereDensity = Mathf.Lerp(0.0f,4.0f,sliderAtDensity.value);
|
|
|
|
|
|
|
|
//###########################
|
|
// SET TENKOKU WEATHER
|
|
//###########################
|
|
//层云
|
|
tenkokuObject.weather_cloudAltoStratusAmt = Mathf.Lerp(0.0f,1.0f,sliderWeAltoStratus.value);
|
|
//卷云
|
|
tenkokuObject.weather_cloudCirrusAmt = Mathf.Lerp(0.0f,1.0f,sliderWeCirrus.value);
|
|
//积云
|
|
tenkokuObject.weather_cloudCumulusAmt = Mathf.Lerp(0.0f,1.0f,sliderWeCumulus.value);
|
|
//阴天
|
|
tenkokuObject.weather_OvercastAmt = Mathf.Lerp(0.0f,1.0f,sliderWeOvercast.value);
|
|
//湿度
|
|
tenkokuObject.weather_humidity = Mathf.Lerp(0.0f,1.0f,sliderAtFog.value);
|
|
//雨
|
|
tenkokuObject.weather_RainAmt = Mathf.Lerp(0.0f,1.0f,sliderWeRain.value);
|
|
//雪
|
|
tenkokuObject.weather_SnowAmt = Mathf.Lerp(0.0f,1.0f,sliderWeSnow.value);
|
|
//风
|
|
tenkokuObject.weather_WindAmt = Mathf.Lerp(0.0f,1.0f,sliderWeWind.value);
|
|
//风速
|
|
tenkokuObject.weather_cloudSpeed = Mathf.Lerp(0.0f,1.0f,sliderWeWind.value);
|
|
//风向
|
|
tenkokuObject.weather_WindDir = Mathf.Lerp(0.0f,365.0f,sliderWeWindD.value);
|
|
//光亮度
|
|
tenkokuObject.weather_lightning = Mathf.Lerp(0.0f,1.0f,sliderWeLightning.value);
|
|
//彩虹
|
|
tenkokuObject.weather_rainbow = Mathf.Lerp(0.0f,1.0f,sliderWeRainbow.value);
|
|
//光照角度
|
|
tenkokuObject.weather_lightningRange = 120.0f;
|
|
//
|
|
tenkokuObject.volumeAmbDay = Mathf.Lerp(0.6f,-2.0f,sliderWeOvercast.value);
|
|
}
|
|
|
|
|
|
}
|
|
} |