| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466 | using System.Collections;using System.Collections.Generic;using UnityEngine;using UnityEditor;namespace Enviro{    [CustomEditor(typeof(EnviroWeatherModule))]    public class EnviroWeatherModuleEditor : EnviroModuleEditor    {          private EnviroWeatherModule myTarget;         //Properties        private SerializedProperty cloudsTransitionSpeed,fogTransitionSpeed,lightingTransitionSpeed,effectsTransitionSpeed,auroraTransitionSpeed,environmentTransitionSpeed,audioTransitionSpeed;                //On Enable        public override void OnEnable()        {             if(!target)                return;             myTarget = (EnviroWeatherModule)target;            serializedObj = new SerializedObject(myTarget);            preset = serializedObj.FindProperty("preset");            cloudsTransitionSpeed = serializedObj.FindProperty("Settings.cloudsTransitionSpeed");            fogTransitionSpeed = serializedObj.FindProperty("Settings.fogTransitionSpeed");            lightingTransitionSpeed = serializedObj.FindProperty("Settings.lightingTransitionSpeed");            effectsTransitionSpeed = serializedObj.FindProperty("Settings.effectsTransitionSpeed");            auroraTransitionSpeed = serializedObj.FindProperty("Settings.auroraTransitionSpeed");             audioTransitionSpeed = serializedObj.FindProperty("Settings.audioTransitionSpeed");            environmentTransitionSpeed = serializedObj.FindProperty("Settings.environmentTransitionSpeed");             //weatherTypeToAdd = serializedObj.FindProperty("weatherTypeToAdd");        }         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, "Weather", headerFoldout);                        GUILayout.FlexibleSpace();            if(GUILayout.Button("x", EditorStyles.miniButtonRight,GUILayout.Width(18), GUILayout.Height(18)))            {                EnviroManager.instance.RemoveModule(EnviroManager.ModuleType.Weather);                DestroyImmediate(this);                return;            }                         EditorGUILayout.EndHorizontal();                        if(myTarget.showModuleInspector)             {                serializedObj.UpdateIfRequiredOrScript ();                EditorGUI.BeginChangeCheck();                GUI.backgroundColor = categoryModuleColor;                GUILayout.BeginVertical("",boxStyleModified);                GUI.backgroundColor = Color.white;                GUILayout.Space(5);                GUILayout.Label("Weather Presets", headerStyle);                GUILayout.Space(5);                Object selectedObject = null;                                         if(GUILayout.Button("Add"))                {                   int controlID = EditorGUIUtility.GetControlID (FocusType.Passive);                   EditorGUIUtility.ShowObjectPicker<EnviroWeatherType>(null,false,"",controlID);                }                 string commandName = Event.current.commandName;                if (commandName == "ObjectSelectorClosed")                 {                    selectedObject = EditorGUIUtility.GetObjectPickerObject ();                                        bool add = true;                                        for (int i = 0; i < myTarget.Settings.weatherTypes.Count; i++)                    {                        if((EnviroWeatherType)selectedObject == myTarget.Settings.weatherTypes[i])                        add = false;                    }                    if(add)                      myTarget.Settings.weatherTypes.Add((EnviroWeatherType)selectedObject);                }                if(GUILayout.Button("Create New"))                {                   myTarget.CreateNewWeatherType();                }                 GUILayout.Space(15);                //Make sure that we remove old empty entries where user deleted the scriptable object.                myTarget.CleanupList();                 for (int i = 0; i < myTarget.Settings.weatherTypes.Count; i++)                     {                                EnviroWeatherType curWT = myTarget.Settings.weatherTypes[i];                          if(curWT == myTarget.targetWeatherType)                             GUI.backgroundColor = new Color(0.0f,0.5f,0.0f,1f);                            GUILayout.BeginVertical ("", boxStyleModified);                            GUI.backgroundColor = Color.white;                            EditorGUILayout.BeginHorizontal();                            curWT.showEditor = GUILayout.Toggle(curWT.showEditor, curWT.name, headerFoldout);                            GUILayout.FlexibleSpace();                            if(curWT != myTarget.targetWeatherType)                            {                                if(GUILayout.Button("Set Active", EditorStyles.miniButtonRight,GUILayout.Width(70), GUILayout.Height(18)))                                {                                    myTarget.ChangeWeather(curWT);                                    EditorUtility.SetDirty(curWT);                                }                             }                            if(GUILayout.Button("x", EditorStyles.miniButtonRight,GUILayout.Width(18), GUILayout.Height(18)))                            {                                myTarget.RemoveWeatherType(curWT);                            }                                                         EditorGUILayout.EndHorizontal();                            //GUILayout.Space(15);                            if(curWT.showEditor)                            {                                curWT.name = EditorGUILayout.TextField ("Name", curWT.name);                                //Lighting                                GUILayout.BeginVertical ("", boxStyleModified);                                curWT.showLightingControls = GUILayout.Toggle(curWT.showLightingControls, "Lighting", headerFoldout);                                                                if(curWT.showLightingControls)                                {                                    GUILayout.Space(5);                                    curWT.lightingOverride.directLightIntensityModifier = EditorGUILayout.Slider("Direct Light Intensity", curWT.lightingOverride.directLightIntensityModifier,0f,2f);                                    curWT.lightingOverride.ambientIntensityModifier = EditorGUILayout.Slider("Ambient Light Intensity", curWT.lightingOverride.ambientIntensityModifier,0f,2f);                                }                                GUILayout.EndVertical();                                //Volumetric Clouds                                GUILayout.BeginVertical ("", boxStyleModified);                                curWT.showCloudControls = GUILayout.Toggle(curWT.showCloudControls, "Volumetric Clouds", headerFoldout);                                if(curWT.showCloudControls)                                {                                    GUILayout.Space(5);                                    GUILayout.BeginVertical ("", boxStyleModified);                                    curWT.cloudsOverride.showLayer1 = GUILayout.Toggle(curWT.cloudsOverride.showLayer1, "Layer 1", headerFoldout);                                    if(curWT.cloudsOverride.showLayer1)                                    {                                        curWT.cloudsOverride.coverageLayer1 = EditorGUILayout.Slider("Coverage", curWT.cloudsOverride.coverageLayer1,-1f,1f);                                        curWT.cloudsOverride.dilateCoverageLayer1 = EditorGUILayout.Slider("Dilate Coverage", curWT.cloudsOverride.dilateCoverageLayer1,0f,1f);                                        curWT.cloudsOverride.dilateTypeLayer1 = EditorGUILayout.Slider("Dilate Type", curWT.cloudsOverride.dilateTypeLayer1,0f,1f);                                        curWT.cloudsOverride.typeModifierLayer1 = EditorGUILayout.Slider("Type Modifier", curWT.cloudsOverride.typeModifierLayer1,0f,1f);                                        curWT.cloudsOverride.anvilBiasLayer1 = EditorGUILayout.Slider("Anvil Bias", curWT.cloudsOverride.anvilBiasLayer1,0f,1f);                                        GUILayout.Space(10);                                        curWT.cloudsOverride.scatteringIntensityLayer1 = EditorGUILayout.Slider("Scattering Intensity", curWT.cloudsOverride.scatteringIntensityLayer1,0f,2f);                                        curWT.cloudsOverride.multiScatteringALayer1 = EditorGUILayout.Slider("Multi Scattering A", curWT.cloudsOverride.multiScatteringALayer1,0f,1f);                                        curWT.cloudsOverride.multiScatteringBLayer1 = EditorGUILayout.Slider("Multi Scattering B", curWT.cloudsOverride.multiScatteringBLayer1,0f,1f);                                        curWT.cloudsOverride.multiScatteringCLayer1 = EditorGUILayout.Slider("Multi Scattering C", curWT.cloudsOverride.multiScatteringCLayer1,0f,1f);                                        curWT.cloudsOverride.powderIntensityLayer1 = EditorGUILayout.Slider("Powder Intensity", curWT.cloudsOverride.powderIntensityLayer1,0f,1f);                                        curWT.cloudsOverride.silverLiningSpreadLayer1 = EditorGUILayout.Slider("Silver Lining Spread", curWT.cloudsOverride.silverLiningSpreadLayer1,0f,1f);                                        curWT.cloudsOverride.ligthAbsorbtionLayer1 = EditorGUILayout.Slider("Light Absorbtion", curWT.cloudsOverride.ligthAbsorbtionLayer1,0f,2f);                                        GUILayout.Space(10);                                        curWT.cloudsOverride.densityLayer1 = EditorGUILayout.Slider("Density", curWT.cloudsOverride.densityLayer1,0f,1f);                                        curWT.cloudsOverride.baseErosionIntensityLayer1 = EditorGUILayout.Slider("Base Erosion Intensity", curWT.cloudsOverride.baseErosionIntensityLayer1,0f,1f);                                        curWT.cloudsOverride.detailErosionIntensityLayer1 = EditorGUILayout.Slider("Detail Erosion Intensity", curWT.cloudsOverride.detailErosionIntensityLayer1,0f,1f);                                        curWT.cloudsOverride.curlIntensityLayer1 = EditorGUILayout.Slider("Curl Intensity", curWT.cloudsOverride.curlIntensityLayer1,0f,1f);                                        GUILayout.Space(10);                                    }                                    GUILayout.EndVertical();                                    if(EnviroManager.instance.VolumetricClouds.settingsGlobal.dualLayer)                                    {                                        GUILayout.BeginVertical ("", boxStyleModified);                                        curWT.cloudsOverride.showLayer2 = GUILayout.Toggle(curWT.cloudsOverride.showLayer2, "Layer 2", headerFoldout);                                        if(curWT.cloudsOverride.showLayer2)                                        {                                            curWT.cloudsOverride.coverageLayer2 = EditorGUILayout.Slider("Coverage", curWT.cloudsOverride.coverageLayer2,-1f,1f);                                            curWT.cloudsOverride.dilateCoverageLayer2 = EditorGUILayout.Slider("Dilate Coverage", curWT.cloudsOverride.dilateCoverageLayer2,0f,1f);                                            curWT.cloudsOverride.dilateTypeLayer2 = EditorGUILayout.Slider("Dilate Type", curWT.cloudsOverride.dilateTypeLayer2,0f,1f);                                            curWT.cloudsOverride.typeModifierLayer2 = EditorGUILayout.Slider("Type Modifier", curWT.cloudsOverride.typeModifierLayer2,0f,1f);                                            curWT.cloudsOverride.anvilBiasLayer2 = EditorGUILayout.Slider("Anvil Bias", curWT.cloudsOverride.anvilBiasLayer2,0f,1f);                                            GUILayout.Space(10);                                            curWT.cloudsOverride.scatteringIntensityLayer2 = EditorGUILayout.Slider("Scattering Intensity", curWT.cloudsOverride.scatteringIntensityLayer2,0f,2f);                                            curWT.cloudsOverride.multiScatteringALayer2 = EditorGUILayout.Slider("Multi Scattering A", curWT.cloudsOverride.multiScatteringALayer2,0f,1f);                                            curWT.cloudsOverride.multiScatteringBLayer2 = EditorGUILayout.Slider("Multi Scattering B", curWT.cloudsOverride.multiScatteringBLayer2,0f,1f);                                            curWT.cloudsOverride.multiScatteringCLayer2 = EditorGUILayout.Slider("Multi Scattering C", curWT.cloudsOverride.multiScatteringCLayer2,0f,1f);                                            curWT.cloudsOverride.powderIntensityLayer2 = EditorGUILayout.Slider("Powder Intensity", curWT.cloudsOverride.powderIntensityLayer2,0f,1f);                                            curWT.cloudsOverride.silverLiningSpreadLayer2 = EditorGUILayout.Slider("Silver Lining Spread", curWT.cloudsOverride.silverLiningSpreadLayer2,0f,1f);                                            curWT.cloudsOverride.ligthAbsorbtionLayer2 = EditorGUILayout.Slider("Light Absorbtion", curWT.cloudsOverride.ligthAbsorbtionLayer2,0f,2f);                                            GUILayout.Space(10);                                            curWT.cloudsOverride.densityLayer2 = EditorGUILayout.Slider("Density", curWT.cloudsOverride.densityLayer2,0f,1f);                                            curWT.cloudsOverride.baseErosionIntensityLayer2 = EditorGUILayout.Slider("Base Erosion Intensity", curWT.cloudsOverride.baseErosionIntensityLayer2,0f,1f);                                            curWT.cloudsOverride.detailErosionIntensityLayer2 = EditorGUILayout.Slider("Detail Erosion Intensity", curWT.cloudsOverride.detailErosionIntensityLayer2,0f,1f);                                            curWT.cloudsOverride.curlIntensityLayer2 = EditorGUILayout.Slider("Curl Intensity", curWT.cloudsOverride.curlIntensityLayer2,0f,1f);                                        }                                        GUILayout.EndVertical();                                    }                                                    }                                GUILayout.EndVertical();                                 //Flat Clouds                                GUILayout.BeginVertical ("", boxStyleModified);                                curWT.showFlatCloudControls = GUILayout.Toggle(curWT.showFlatCloudControls, "Flat Clouds", headerFoldout);                                                                if(curWT.showFlatCloudControls)                                {                                     GUILayout.Space(5);                                    EditorGUILayout.LabelField("Cirrus Clouds", headerStyle);                                    curWT.flatCloudsOverride.cirrusCloudsCoverage = EditorGUILayout.Slider("Cirrus Clouds Coverage", curWT.flatCloudsOverride.cirrusCloudsCoverage,0f,1f);                                    curWT.flatCloudsOverride.cirrusCloudsAlpha = EditorGUILayout.Slider("Cirrus Clouds Alpha", curWT.flatCloudsOverride.cirrusCloudsAlpha,0f,1f);                                    curWT.flatCloudsOverride.cirrusCloudsColorPower = EditorGUILayout.Slider("Cirrus Clouds Color", curWT.flatCloudsOverride.cirrusCloudsColorPower,0f,2f);                                    GUILayout.Space(10);                                    EditorGUILayout.LabelField("Flat Clouds", headerStyle);                                    curWT.flatCloudsOverride.flatCloudsCoverage = EditorGUILayout.Slider("Flat Clouds Coverage", curWT.flatCloudsOverride.flatCloudsCoverage,0f,2f);                                    curWT.flatCloudsOverride.flatCloudsLightIntensity = EditorGUILayout.Slider("Flat Clouds Light Intensity", curWT.flatCloudsOverride.flatCloudsLightIntensity,0f,2f);                                    curWT.flatCloudsOverride.flatCloudsAmbientIntensity = EditorGUILayout.Slider("Flat Clouds Ambient Intensity", curWT.flatCloudsOverride.flatCloudsAmbientIntensity,0f,2f);                                    curWT.flatCloudsOverride.flatCloudsAbsorbtion = EditorGUILayout.Slider("Flat Clouds Light Absorbtion", curWT.flatCloudsOverride.flatCloudsAbsorbtion,0f,2f);                                }                                GUILayout.EndVertical();                                //Fog                                GUILayout.BeginVertical ("", boxStyleModified);                                curWT.showFogControls = GUILayout.Toggle(curWT.showFogControls, "Fog", headerFoldout);                                                                if(curWT.showFogControls)                                {                                     GUILayout.Space(5);                                    EditorGUILayout.LabelField("Layer 1", headerStyle);                                    curWT.fogOverride.fogDensity = EditorGUILayout.Slider("Fog Density 1", curWT.fogOverride.fogDensity,0f,1f);                                    curWT.fogOverride.fogHeightFalloff = EditorGUILayout.Slider("Fog Height Falloff 1", curWT.fogOverride.fogHeightFalloff,0f,0.05f);                                    curWT.fogOverride.fogHeight = EditorGUILayout.FloatField("Fog Height 1 ", curWT.fogOverride.fogHeight);                                    GUILayout.Space(10);                                    EditorGUILayout.LabelField("Layer 2", headerStyle);                                    curWT.fogOverride.fogDensity2 = EditorGUILayout.Slider("Fog Density 2", curWT.fogOverride.fogDensity2,0f,1f);                                    curWT.fogOverride.fogHeightFalloff2 = EditorGUILayout.Slider("Fog Height Falloff 2", curWT.fogOverride.fogHeightFalloff2,0f,0.05f);                                    curWT.fogOverride.fogHeight2 = EditorGUILayout.FloatField("Fog Height 2", curWT.fogOverride.fogHeight2);                                    GUILayout.Space(10);                                    EditorGUILayout.LabelField("Color", headerStyle);                                    curWT.fogOverride.fogColorBlend = EditorGUILayout.Slider("Fog Sky-Color Blending", curWT.fogOverride.fogColorBlend,0f,1.0f);                                    GUILayout.Space(10);                            #if !ENVIRO_HDRP                                    EditorGUILayout.LabelField("Volumetrics", headerStyle);                                    curWT.fogOverride.scattering = EditorGUILayout.Slider("Scattering Intensity", curWT.fogOverride.scattering,0f,2.0f);                                    curWT.fogOverride.extinction = EditorGUILayout.Slider("Extinction Intensity", curWT.fogOverride.extinction,0f,1.0f);                                    curWT.fogOverride.anistropy = EditorGUILayout.Slider("Anistropy", curWT.fogOverride.anistropy,0f,1.0f);                            #else                                    EditorGUILayout.LabelField("HDRP Fog", headerStyle);                                    curWT.fogOverride.fogAttenuationDistance = EditorGUILayout.Slider("Attenuation Distance", curWT.fogOverride.fogAttenuationDistance,0f,400f);                                    curWT.fogOverride.baseHeight = EditorGUILayout.FloatField("Base Height", curWT.fogOverride.baseHeight);                                    curWT.fogOverride.maxHeight = EditorGUILayout.FloatField("Max Height", curWT.fogOverride.maxHeight);                                    GUILayout.Space(10);                                    EditorGUILayout.LabelField("HDRP Volumetrics", headerStyle);                                    curWT.fogOverride.ambientDimmer = EditorGUILayout.Slider("Ambient Dimmer", curWT.fogOverride.ambientDimmer,0f,1f);                                    curWT.fogOverride.directLightMultiplier = EditorGUILayout.Slider("Direct Light Multiplier", curWT.fogOverride.directLightMultiplier,0f,16f);                                    curWT.fogOverride.directLightShadowdimmer = EditorGUILayout.Slider("Direct Light Shadow gimmer", curWT.fogOverride.directLightShadowdimmer,0f,1f);                            #endif                                 }                                GUILayout.EndVertical();                                //Effects                                GUILayout.BeginVertical ("", boxStyleModified);                                curWT.showEffectControls = GUILayout.Toggle(curWT.showEffectControls, "Effects", headerFoldout);                                                                if(curWT.showEffectControls)                                {                                     GUILayout.Space(5);                                    curWT.effectsOverride.rain1Emission = EditorGUILayout.Slider("Rain1 Emission", curWT.effectsOverride.rain1Emission,0f,1f);                                    curWT.effectsOverride.rain2Emission = EditorGUILayout.Slider("Rain2 Emission", curWT.effectsOverride.rain2Emission,0f,1f);                                    GUILayout.Space(5);                                    curWT.effectsOverride.snow1Emission = EditorGUILayout.Slider("Snow1 Emission", curWT.effectsOverride.snow1Emission,0f,1f);                                    curWT.effectsOverride.snow2Emission = EditorGUILayout.Slider("Snow2 Emission", curWT.effectsOverride.snow2Emission,0f,1f);                                    GUILayout.Space(5);                                    curWT.effectsOverride.custom1Emission = EditorGUILayout.Slider("Custom1 Emission", curWT.effectsOverride.custom1Emission,0f,1f);                                    curWT.effectsOverride.custom2Emission = EditorGUILayout.Slider("Custom2 Emission", curWT.effectsOverride.custom2Emission,0f,1f);                                }                                GUILayout.EndVertical();                                //Aurora                                GUILayout.BeginVertical ("", boxStyleModified);                                curWT.showAuroraControls = GUILayout.Toggle(curWT.showAuroraControls, "Aurora", headerFoldout);                                                                if(curWT.showAuroraControls)                                 {                                     GUILayout.Space(5);                                    curWT.auroraOverride.auroraIntensity = EditorGUILayout.Slider("Aurora Intensity Modifier", curWT.auroraOverride.auroraIntensity,0f,1f);                                }                                 GUILayout.EndVertical();                                //Environment                                GUILayout.BeginVertical ("", boxStyleModified);                                curWT.showEnvironmentControls = GUILayout.Toggle(curWT.showEnvironmentControls, "Environment", headerFoldout);                                                                if(curWT.showEnvironmentControls)                                 {                                     GUILayout.Space(5);                                    curWT.environmentOverride.temperatureWeatherMod = EditorGUILayout.Slider("Temperature Modifier", curWT.environmentOverride.temperatureWeatherMod,-20f,20f);                                    GUILayout.Space(5);                                    curWT.environmentOverride.wetnessTarget = EditorGUILayout.Slider("Wetness Target", curWT.environmentOverride.wetnessTarget,0f,1f);                                    curWT.environmentOverride.snowTarget = EditorGUILayout.Slider("Snow Target", curWT.environmentOverride.snowTarget,0f,1f);                                }                                 GUILayout.EndVertical();                                //Lightning                                GUILayout.BeginVertical ("", boxStyleModified);                                curWT.showLightningControls = GUILayout.Toggle(curWT.showLightningControls, "Lightning", headerFoldout);                                                                if(curWT.showLightningControls)                                 {                                    GUILayout.Space(5);                                    curWT.lightningOverride.lightningStorm = EditorGUILayout.Toggle("Lightning Storm", curWT.lightningOverride.lightningStorm);                                    curWT.lightningOverride.randomLightningDelay = EditorGUILayout.Slider("Lightning Delay", curWT.lightningOverride.randomLightningDelay,1f,60f);                                }                                GUILayout.EndVertical();                                 //Audio                                GUILayout.BeginVertical ("", boxStyleModified);                                curWT.showAudioControls = GUILayout.Toggle(curWT.showAudioControls, "Audio", headerFoldout);                                                                if(curWT.showAudioControls)                                {                                            GUILayout.Space(5);                                    //Ambient SFX                                    GUILayout.BeginVertical ("", boxStyleModified);                                    curWT.showAmbientAudioControls = GUILayout.Toggle(curWT.showAmbientAudioControls, "Ambient", headerFoldout);                                             if(curWT.showAmbientAudioControls)                                    {                                            GUILayout.Space(10);                                        if (GUILayout.Button ("Add"))                                         {                                            curWT.audioOverride.ambientOverride.Add (new EnviroAudioOverrideType());                                        }                                                            GUILayout.Space(10);                                                                                for (int a = 0; a < curWT.audioOverride.ambientOverride.Count; a++)                                         {                                                  GUILayout.BeginVertical ("", boxStyleModified);                                            EditorGUILayout.BeginHorizontal();                                            curWT.audioOverride.ambientOverride[a].showEditor = GUILayout.Toggle(curWT.audioOverride.ambientOverride[a].showEditor, curWT.audioOverride.ambientOverride[a].name, headerFoldout);                                            GUILayout.FlexibleSpace();                                            if(GUILayout.Button("x", EditorStyles.miniButtonRight,GUILayout.Width(18), GUILayout.Height(18)))                                            {                                                 curWT.audioOverride.ambientOverride.Remove (curWT.audioOverride.ambientOverride[a]);                                                return;                                            }                                                       EditorGUILayout.EndHorizontal();                                            if(curWT.audioOverride.ambientOverride[a].showEditor)                                            {                                                curWT.audioOverride.ambientOverride[a].name = EditorGUILayout.TextField ("Audio Name", curWT.audioOverride.ambientOverride[a].name);                                                curWT.audioOverride.ambientOverride[a].volume = EditorGUILayout.Slider ("Volume", curWT.audioOverride.ambientOverride[a].volume,0f,1f);                                                                                  }                                             GUILayout.EndVertical ();                                        }                                    }                                    GUILayout.EndVertical ();                                    //Weather SFX                                    GUILayout.BeginVertical ("", boxStyleModified);                                    curWT.showWeatherAudioControls = GUILayout.Toggle(curWT.showWeatherAudioControls, "Weather", headerFoldout);                                             if(curWT.showWeatherAudioControls)                                    {                                             GUILayout.Space(10);                                        if (GUILayout.Button ("Add"))                                         {                                            curWT.audioOverride.weatherOverride.Add (new EnviroAudioOverrideType());                                        }                                                            GUILayout.Space(10);                                                                                for (int a = 0; a < curWT.audioOverride.weatherOverride.Count; a++)                                         {                                                  GUILayout.BeginVertical ("", boxStyleModified);                                            EditorGUILayout.BeginHorizontal();                                            curWT.audioOverride.weatherOverride[a].showEditor = GUILayout.Toggle(curWT.audioOverride.weatherOverride[a].showEditor, curWT.audioOverride.weatherOverride[a].name, headerFoldout);                                            GUILayout.FlexibleSpace();                                            if(GUILayout.Button("x", EditorStyles.miniButtonRight,GUILayout.Width(18), GUILayout.Height(18)))                                            {                                                 curWT.audioOverride.weatherOverride.Remove (curWT.audioOverride.weatherOverride[a]);                                                return;                                            }                                                       EditorGUILayout.EndHorizontal();                                            if(curWT.audioOverride.weatherOverride[a].showEditor)                                            {                                                curWT.audioOverride.weatherOverride[a].name = EditorGUILayout.TextField ("Audio Name", curWT.audioOverride.weatherOverride[a].name);                                                curWT.audioOverride.weatherOverride[a].volume = EditorGUILayout.Slider ("Volume", curWT.audioOverride.weatherOverride[a].volume,0f,1f);                                                                                  }                                             GUILayout.EndVertical ();                                        }                                    }                                    GUILayout.EndVertical ();                                }                                GUILayout.EndVertical();                                                            }                            GUILayout.EndVertical ();                            GUILayout.Space(2.5f);                    }                    GUILayout.Space(10);                    GUILayout.Label("Transition", headerStyle);                    EditorGUILayout.PropertyField(cloudsTransitionSpeed);                    EditorGUILayout.PropertyField(fogTransitionSpeed);                    EditorGUILayout.PropertyField(lightingTransitionSpeed);                    EditorGUILayout.PropertyField(effectsTransitionSpeed);                    EditorGUILayout.PropertyField(auroraTransitionSpeed);                     EditorGUILayout.PropertyField(environmentTransitionSpeed);                               EditorGUILayout.PropertyField(audioTransitionSpeed);                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);        }    }}
 |