add weather and time
This commit is contained in:
@@ -0,0 +1,306 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using UnityEditor;
|
||||
|
||||
namespace Enviro
|
||||
{
|
||||
[CustomEditor(typeof(EnviroSkyModule))]
|
||||
public class EnviroSkyModuleEditor : EnviroModuleEditor
|
||||
{
|
||||
private EnviroSkyModule myTarget;
|
||||
|
||||
//Properties
|
||||
private SerializedProperty forcedSkyboxSetup, skyMode;
|
||||
private SerializedProperty frontColorGradient0,frontColorGradient1,frontColorGradient2,frontColorGradient3,frontColorGradient4,frontColorGradient5;
|
||||
private SerializedProperty frontColor0,frontColor1,frontColor2,frontColor3,frontColor4,frontColor5;
|
||||
private SerializedProperty sunDiscColorGradient, moonColorGradient, moonGlowColorGradient;
|
||||
private SerializedProperty sunDiscColor, moonColor, moonGlowColor, skyColorTint,skyColorExponent,mieScatteringMultiplier;
|
||||
private SerializedProperty backColorGradient0,backColorGradient1,backColorGradient2,backColorGradient3,backColorGradient4,backColorGradient5;
|
||||
private SerializedProperty backColor0,backColor1,backColor2,backColor3,backColor4,backColor5;
|
||||
private SerializedProperty distribution0,distribution1,distribution2,distribution3;
|
||||
private SerializedProperty starsTex,starsTwinklingTex, galaxyTex, sunTex, moonTex, moonGlowTex;
|
||||
|
||||
private SerializedProperty mieScatteringIntensityCurve, moonGlowIntensityCurve, starIntensityCurve, galaxyIntensityCurve;
|
||||
private SerializedProperty intensity,intensityCurve, mieScatteringIntensity,sunScale, moonScale, moonGlowScale, moonMode, moonPhase, starsTwinklingSpeed;
|
||||
|
||||
#if ENVIRO_HDRP
|
||||
private SerializedProperty skyExposureHDRP,skyAmbientModeHDRP;
|
||||
#endif
|
||||
//On Enable
|
||||
public override void OnEnable()
|
||||
{
|
||||
if(!target)
|
||||
return;
|
||||
|
||||
myTarget = (EnviroSkyModule)target;
|
||||
serializedObj = new SerializedObject(myTarget);
|
||||
preset = serializedObj.FindProperty("preset");
|
||||
|
||||
forcedSkyboxSetup = serializedObj.FindProperty("Settings.forcedSkyboxSetup");
|
||||
skyMode = serializedObj.FindProperty("Settings.skyMode");
|
||||
// Front Colors
|
||||
frontColorGradient0 = serializedObj.FindProperty("Settings.frontColorGradient0");
|
||||
frontColorGradient1 = serializedObj.FindProperty("Settings.frontColorGradient1");
|
||||
frontColorGradient2 = serializedObj.FindProperty("Settings.frontColorGradient2");
|
||||
frontColorGradient3 = serializedObj.FindProperty("Settings.frontColorGradient3");
|
||||
frontColorGradient4 = serializedObj.FindProperty("Settings.frontColorGradient4");
|
||||
frontColorGradient5 = serializedObj.FindProperty("Settings.frontColorGradient5");
|
||||
|
||||
// Back Colors
|
||||
backColorGradient0 = serializedObj.FindProperty("Settings.backColorGradient0");
|
||||
backColorGradient1 = serializedObj.FindProperty("Settings.backColorGradient1");
|
||||
backColorGradient2 = serializedObj.FindProperty("Settings.backColorGradient2");
|
||||
backColorGradient3 = serializedObj.FindProperty("Settings.backColorGradient3");
|
||||
backColorGradient4 = serializedObj.FindProperty("Settings.backColorGradient4");
|
||||
backColorGradient5 = serializedObj.FindProperty("Settings.backColorGradient5");
|
||||
|
||||
skyColorTint = serializedObj.FindProperty("Settings.skyColorTint");
|
||||
skyColorExponent = serializedObj.FindProperty("Settings.skyColorTint");
|
||||
mieScatteringMultiplier = serializedObj.FindProperty("Settings.mieScatteringMultiplier");
|
||||
|
||||
//Sund and Moon Colors
|
||||
sunDiscColorGradient = serializedObj.FindProperty("Settings.sunDiscColorGradient");
|
||||
moonColorGradient = serializedObj.FindProperty("Settings.moonColorGradient");
|
||||
moonGlowColorGradient = serializedObj.FindProperty("Settings.moonGlowColorGradient");
|
||||
//Distribution
|
||||
distribution0 = serializedObj.FindProperty("Settings.distribution0");
|
||||
distribution1 = serializedObj.FindProperty("Settings.distribution1");
|
||||
distribution2 = serializedObj.FindProperty("Settings.distribution2");
|
||||
distribution3 = serializedObj.FindProperty("Settings.distribution3");
|
||||
|
||||
//Textures
|
||||
starsTex = serializedObj.FindProperty("Settings.starsTex");
|
||||
starsTwinklingTex = serializedObj.FindProperty("Settings.starsTwinklingTex");
|
||||
galaxyTex = serializedObj.FindProperty("Settings.galaxyTex");
|
||||
sunTex = serializedObj.FindProperty("Settings.sunTex");
|
||||
moonTex = serializedObj.FindProperty("Settings.moonTex");
|
||||
moonGlowTex = serializedObj.FindProperty("Settings.moonGlowTex");
|
||||
moonMode = serializedObj.FindProperty("Settings.moonMode");
|
||||
//Intensity
|
||||
mieScatteringIntensityCurve = serializedObj.FindProperty("Settings.mieScatteringIntensityCurve");
|
||||
moonGlowIntensityCurve = serializedObj.FindProperty("Settings.moonGlowIntensityCurve");
|
||||
starIntensityCurve = serializedObj.FindProperty("Settings.starIntensityCurve");
|
||||
galaxyIntensityCurve = serializedObj.FindProperty("Settings.galaxyIntensityCurve");
|
||||
intensity = serializedObj.FindProperty("Settings.intensity");
|
||||
intensityCurve = serializedObj.FindProperty("Settings.intensityCurve");
|
||||
sunScale = serializedObj.FindProperty("Settings.sunScale");
|
||||
moonScale = serializedObj.FindProperty("Settings.moonScale");
|
||||
moonPhase = serializedObj.FindProperty("Settings.moonPhase");
|
||||
starsTwinklingSpeed = serializedObj.FindProperty("Settings.starsTwinklingSpeed");
|
||||
// moonGlowScale = serializedObj.FindProperty("skySettings.moonGlowScale");
|
||||
#if ENVIRO_HDRP
|
||||
skyExposureHDRP = serializedObj.FindProperty("Settings.skyExposureHDRP");
|
||||
skyAmbientModeHDRP = serializedObj.FindProperty("Settings.skyAmbientModeHDRP");
|
||||
#endif
|
||||
}
|
||||
|
||||
public override void OnInspectorGUI()
|
||||
{
|
||||
if(!target)
|
||||
return;
|
||||
|
||||
base.OnInspectorGUI();
|
||||
|
||||
GUI.backgroundColor = baseModuleColor;
|
||||
GUILayout.BeginVertical("",boxStyleModified);
|
||||
GUI.backgroundColor = Color.white;
|
||||
EditorGUILayout.BeginHorizontal();
|
||||
myTarget.showModuleInspector = GUILayout.Toggle(myTarget.showModuleInspector, "Sky", headerFoldout);
|
||||
|
||||
GUILayout.FlexibleSpace();
|
||||
if(GUILayout.Button("x", EditorStyles.miniButtonRight,GUILayout.Width(18), GUILayout.Height(18)))
|
||||
{
|
||||
EnviroManager.instance.RemoveModule(EnviroManager.ModuleType.Sky); //Add Remove
|
||||
DestroyImmediate(this);
|
||||
return;
|
||||
}
|
||||
|
||||
EditorGUILayout.EndHorizontal();
|
||||
|
||||
if(myTarget.showModuleInspector)
|
||||
{
|
||||
//EditorGUILayout.LabelField("This module will control your skybox.");
|
||||
serializedObj.UpdateIfRequiredOrScript ();
|
||||
EditorGUI.BeginChangeCheck();
|
||||
|
||||
// Sky Color Controls
|
||||
GUI.backgroundColor = categoryModuleColor;
|
||||
GUILayout.BeginVertical("",boxStyleModified);
|
||||
GUI.backgroundColor = Color.white;
|
||||
myTarget.showSkyControls = GUILayout.Toggle(myTarget.showSkyControls, "Sky Controls", headerFoldout);
|
||||
if(myTarget.showSkyControls)
|
||||
{
|
||||
GUILayout.Space(10);
|
||||
EditorGUILayout.LabelField("General",headerStyle);
|
||||
EditorGUILayout.PropertyField(skyMode);
|
||||
EditorGUILayout.PropertyField(forcedSkyboxSetup);
|
||||
GUILayout.Space(10);
|
||||
if(myTarget.Settings.skyMode == EnviroSky.SkyMode.Normal)
|
||||
{
|
||||
EditorGUILayout.LabelField("Ground Color",headerStyle);
|
||||
EditorGUILayout.PropertyField(frontColorGradient0);
|
||||
EditorGUILayout.PropertyField(backColorGradient0);
|
||||
}
|
||||
GUILayout.Space(5);
|
||||
EditorGUILayout.LabelField("Horizon Colors",headerStyle);
|
||||
EditorGUILayout.PropertyField(frontColorGradient1);
|
||||
EditorGUILayout.PropertyField(backColorGradient1);
|
||||
GUILayout.Space(5);
|
||||
EditorGUILayout.PropertyField(frontColorGradient2);
|
||||
EditorGUILayout.PropertyField(backColorGradient2);
|
||||
|
||||
if(myTarget.Settings.skyMode == EnviroSky.SkyMode.Normal)
|
||||
{
|
||||
GUILayout.Space(5);
|
||||
EditorGUILayout.PropertyField(frontColorGradient3);
|
||||
EditorGUILayout.PropertyField(backColorGradient3);
|
||||
GUILayout.Space(5);
|
||||
EditorGUILayout.PropertyField(frontColorGradient4);
|
||||
EditorGUILayout.PropertyField(backColorGradient4);
|
||||
}
|
||||
GUILayout.Space(5);
|
||||
EditorGUILayout.LabelField("Top Color",headerStyle);
|
||||
EditorGUILayout.PropertyField(frontColorGradient5);
|
||||
EditorGUILayout.PropertyField(backColorGradient5);
|
||||
GUILayout.Space(5);
|
||||
EditorGUILayout.LabelField("Tint",headerStyle);
|
||||
EditorGUILayout.PropertyField(skyColorTint);
|
||||
GUILayout.Space(5);
|
||||
EditorGUILayout.LabelField("Distribution",headerStyle);
|
||||
EditorGUILayout.PropertyField(distribution0);
|
||||
EditorGUILayout.PropertyField(distribution1);
|
||||
if(myTarget.Settings.skyMode == EnviroSky.SkyMode.Normal)
|
||||
{
|
||||
EditorGUILayout.PropertyField(distribution2);
|
||||
EditorGUILayout.PropertyField(distribution3);
|
||||
}
|
||||
GUILayout.Space(5);
|
||||
EditorGUILayout.LabelField("Intensity",headerStyle);
|
||||
EditorGUILayout.PropertyField(intensity);
|
||||
EditorGUILayout.PropertyField(intensityCurve);
|
||||
DisableInputStart();
|
||||
EditorGUILayout.PropertyField(skyColorExponent);
|
||||
DisableInputEnd();
|
||||
GUILayout.Space(5);
|
||||
EditorGUILayout.PropertyField(mieScatteringIntensityCurve);
|
||||
DisableInputStart();
|
||||
EditorGUILayout.PropertyField(mieScatteringMultiplier);
|
||||
DisableInputEnd();
|
||||
#if ENVIRO_HDRP
|
||||
GUILayout.Space(5);
|
||||
EditorGUILayout.LabelField("HDRP Settings",headerStyle);
|
||||
EditorGUILayout.PropertyField(skyAmbientModeHDRP);
|
||||
EditorGUILayout.PropertyField(skyExposureHDRP);
|
||||
#endif
|
||||
}
|
||||
GUILayout.EndVertical();
|
||||
|
||||
GUI.backgroundColor = categoryModuleColor;
|
||||
GUILayout.BeginVertical("",boxStyleModified);
|
||||
GUI.backgroundColor = Color.white;
|
||||
myTarget.showSkySunControls = GUILayout.Toggle(myTarget.showSkySunControls, "Sun Controls", headerFoldout);
|
||||
if(myTarget.showSkySunControls)
|
||||
{
|
||||
GUILayout.Space(10);
|
||||
EditorGUILayout.LabelField("Textures",headerStyle);
|
||||
EditorGUILayout.PropertyField(sunTex);
|
||||
GUILayout.Space(5);
|
||||
EditorGUILayout.LabelField("Color",headerStyle);
|
||||
EditorGUILayout.PropertyField(sunDiscColorGradient);
|
||||
GUILayout.Space(5);
|
||||
EditorGUILayout.LabelField("Scale",headerStyle);
|
||||
EditorGUILayout.PropertyField(sunScale);
|
||||
}
|
||||
GUILayout.EndVertical();
|
||||
|
||||
GUI.backgroundColor = categoryModuleColor;
|
||||
GUILayout.BeginVertical("",boxStyleModified);
|
||||
GUI.backgroundColor = Color.white;
|
||||
myTarget.showSkyMoonControls = GUILayout.Toggle(myTarget.showSkyMoonControls, "Moon Controls", headerFoldout);
|
||||
if(myTarget.showSkyMoonControls)
|
||||
{
|
||||
GUILayout.Space(10);
|
||||
EditorGUILayout.PropertyField(moonMode);
|
||||
if(myTarget.Settings.moonMode != EnviroSky.MoonMode.Simple)
|
||||
EditorGUI.BeginDisabledGroup(true);
|
||||
EditorGUILayout.PropertyField(moonPhase);
|
||||
|
||||
if(myTarget.Settings.moonMode != EnviroSky.MoonMode.Simple)
|
||||
EditorGUI.EndDisabledGroup();
|
||||
GUILayout.Space(5);
|
||||
EditorGUILayout.LabelField("Textures",headerStyle);
|
||||
EditorGUILayout.PropertyField(moonTex);
|
||||
GUILayout.Space(5);
|
||||
EditorGUILayout.LabelField("Color",headerStyle);
|
||||
EditorGUILayout.PropertyField(moonColorGradient);
|
||||
GUILayout.Space(5);
|
||||
EditorGUILayout.LabelField("Scale",headerStyle);
|
||||
EditorGUILayout.PropertyField(moonScale);
|
||||
}
|
||||
GUILayout.EndVertical();
|
||||
|
||||
GUI.backgroundColor = categoryModuleColor;
|
||||
GUILayout.BeginVertical("",boxStyleModified);
|
||||
GUI.backgroundColor = Color.white;
|
||||
myTarget.showSkyStarsControls = GUILayout.Toggle(myTarget.showSkyStarsControls, "Stars and Galaxy Controls", headerFoldout);
|
||||
if(myTarget.showSkyStarsControls)
|
||||
{
|
||||
GUILayout.Space(10);
|
||||
EditorGUILayout.LabelField("Textures",headerStyle);
|
||||
EditorGUILayout.PropertyField(starsTex);
|
||||
EditorGUILayout.PropertyField(starsTwinklingTex);
|
||||
if(myTarget.Settings.skyMode == EnviroSky.SkyMode.Normal)
|
||||
EditorGUILayout.PropertyField(galaxyTex);
|
||||
GUILayout.Space(5);
|
||||
EditorGUILayout.LabelField("Intensity",headerStyle);
|
||||
EditorGUILayout.PropertyField(starIntensityCurve);
|
||||
if(myTarget.Settings.skyMode == EnviroSky.SkyMode.Normal)
|
||||
EditorGUILayout.PropertyField(galaxyIntensityCurve);
|
||||
EditorGUILayout.PropertyField(starsTwinklingSpeed);
|
||||
|
||||
}
|
||||
GUILayout.EndVertical();
|
||||
|
||||
|
||||
/// Save Load
|
||||
GUI.backgroundColor = categoryModuleColor;
|
||||
GUILayout.BeginVertical("",boxStyleModified);
|
||||
GUI.backgroundColor = Color.white;
|
||||
myTarget.showSaveLoad = GUILayout.Toggle(myTarget.showSaveLoad, "Save/Load", headerFoldout);
|
||||
|
||||
if(myTarget.showSaveLoad)
|
||||
{
|
||||
EditorGUILayout.PropertyField(preset);
|
||||
|
||||
GUILayout.BeginHorizontal("",wrapStyle);
|
||||
|
||||
if(myTarget.preset != null)
|
||||
{
|
||||
if(GUILayout.Button("Load"))
|
||||
{
|
||||
myTarget.LoadModuleValues();
|
||||
}
|
||||
if(GUILayout.Button("Save"))
|
||||
{
|
||||
myTarget.SaveModuleValues(myTarget.preset);
|
||||
}
|
||||
}
|
||||
if(GUILayout.Button("Save As New"))
|
||||
{
|
||||
myTarget.SaveModuleValues();
|
||||
}
|
||||
GUILayout.EndHorizontal();
|
||||
}
|
||||
GUILayout.EndVertical();
|
||||
/// Save Load End
|
||||
|
||||
ApplyChanges ();
|
||||
}
|
||||
GUILayout.EndVertical();
|
||||
|
||||
if(myTarget.showModuleInspector)
|
||||
GUILayout.Space(20);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user