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