| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267 | using System.Collections;using System.Collections.Generic;using UnityEngine;using UnityEditor;namespace Enviro{    [CustomEditor(typeof(EnviroFogModule))]    public class EnviroFogModuleEditor : EnviroModuleEditor    {          private EnviroFogModule myTarget;         //Properties        private SerializedProperty fog, volumetrics, ditheringTex, quality, steps, scattering, extinction, anistropy, maxRange, noiseIntensity, noiseScale, windDirection, noise;        private SerializedProperty fogDensity, fogHeightFalloff, fogHeight, fogDensity2, fogHeightFalloff2, fogHeight2, fogMaxOpacity, startDistance, fogColorBlend,ambientColorGradient;    #if ENVIRO_HDRP        private SerializedProperty controlHDRPFog, fogAttenuationDistance, baseHeight, maxHeight, fogColorTint;        private SerializedProperty controlHDRPVolumetrics, volumetricsColorTint, ambientDimmer, directLightMultiplier, directLightShadowdimmer;    #endif        public override void OnEnable()        {            if(!target)                return;            myTarget = (EnviroFogModule)target;            serializedObj = new SerializedObject(myTarget);            preset = serializedObj.FindProperty("preset");            //Volumetrics            volumetrics = serializedObj.FindProperty("Settings.volumetrics");            quality = serializedObj.FindProperty("Settings.quality");            steps = serializedObj.FindProperty("Settings.steps");            scattering = serializedObj.FindProperty("Settings.scattering");            extinction = serializedObj.FindProperty("Settings.extinction");            anistropy = serializedObj.FindProperty("Settings.anistropy");            maxRange = serializedObj.FindProperty("Settings.maxRange");            noiseIntensity = serializedObj.FindProperty("Settings.noiseIntensity");            noiseScale = serializedObj.FindProperty("Settings.noiseScale");            windDirection= serializedObj.FindProperty("Settings.windDirection");            noise = serializedObj.FindProperty("Settings.noise");            ditheringTex = serializedObj.FindProperty("Settings.ditheringTex");            //Height Fog            fog = serializedObj.FindProperty("Settings.fog");            fogDensity = serializedObj.FindProperty("Settings.fogDensity");            fogHeightFalloff = serializedObj.FindProperty("Settings.fogHeightFalloff");            fogHeight = serializedObj.FindProperty("Settings.fogHeight");            fogDensity2 = serializedObj.FindProperty("Settings.fogDensity2");            fogHeightFalloff2 = serializedObj.FindProperty("Settings.fogHeightFalloff2");            fogHeight2 = serializedObj.FindProperty("Settings.fogHeight2");            fogMaxOpacity = serializedObj.FindProperty("Settings.fogMaxOpacity");            startDistance = serializedObj.FindProperty("Settings.startDistance");            fogColorBlend = serializedObj.FindProperty("Settings.fogColorBlend");            ambientColorGradient = serializedObj.FindProperty("Settings.ambientColorGradient");            //HDRP  #if ENVIRO_HDRP            controlHDRPFog = serializedObj.FindProperty("Settings.controlHDRPFog");            fogAttenuationDistance = serializedObj.FindProperty("Settings.fogAttenuationDistance");            baseHeight = serializedObj.FindProperty("Settings.baseHeight");            maxHeight = serializedObj.FindProperty("Settings.maxHeight");            fogColorTint= serializedObj.FindProperty("Settings.fogColorTint");            controlHDRPVolumetrics= serializedObj.FindProperty("Settings.controlHDRPVolumetrics");            volumetricsColorTint = serializedObj.FindProperty("Settings.volumetricsColorTint");            ambientDimmer = serializedObj.FindProperty("Settings.ambientDimmer");            directLightMultiplier = serializedObj.FindProperty("Settings.directLightMultiplier");            directLightShadowdimmer = serializedObj.FindProperty("Settings.directLightShadowdimmer");  #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, "Fog", headerFoldout);                        GUILayout.FlexibleSpace();            if(GUILayout.Button("x", EditorStyles.miniButtonRight,GUILayout.Width(18), GUILayout.Height(18)))            {                EnviroManager.instance.RemoveModule(EnviroManager.ModuleType.Fog); //Add Remove                DestroyImmediate(this);                return;            }                         EditorGUILayout.EndHorizontal();                        if(myTarget.showModuleInspector)            {                RenderDisableInputBox();                serializedObj.UpdateIfRequiredOrScript ();                EditorGUI.BeginChangeCheck();                                // Enviro Fog                GUI.backgroundColor = categoryModuleColor;                GUILayout.BeginVertical("",boxStyleModified);                GUI.backgroundColor = Color.white;                myTarget.showFogControls = GUILayout.Toggle(myTarget.showFogControls, "Fog Controls", headerFoldout);                               if(myTarget.showFogControls)                {                     GUILayout.Space(5);                    DisableInputStartQuality();                    EditorGUILayout.PropertyField(fog);                    DisableInputEndQuality();                    GUILayout.Space(5);                    if(myTarget.Settings.fog)                    {                    DisableInputStart();                    EditorGUILayout.LabelField("Fog Layer 1",headerStyle);                    GUILayout.Space(5);                    EditorGUILayout.PropertyField(fogDensity);                    EditorGUILayout.PropertyField(fogHeightFalloff);                    EditorGUILayout.PropertyField(fogHeight);                    GUILayout.Space(10);                    EditorGUILayout.LabelField("Fog Layer 2",headerStyle);                    GUILayout.Space(5);                    EditorGUILayout.PropertyField(fogDensity2);                    EditorGUILayout.PropertyField(fogHeightFalloff2);                    EditorGUILayout.PropertyField(fogHeight2);                    GUILayout.Space(10);                    DisableInputEnd();                    EditorGUILayout.LabelField("Opacity and Distance",headerStyle);                    GUILayout.Space(5);                    EditorGUILayout.PropertyField(fogMaxOpacity);                    //EditorGUILayout.PropertyField(startDistance);                    GUILayout.Space(10);                     DisableInputStart();                    EditorGUILayout.LabelField("Color",headerStyle);                    GUILayout.Space(5);                    EditorGUILayout.PropertyField(fogColorBlend);                    DisableInputEnd();                            EditorGUILayout.PropertyField(ambientColorGradient);                              GUILayout.Space(10);                     }                                 }                GUILayout.EndVertical();                //HDRP Fog            #if ENVIRO_HDRP                GUI.backgroundColor = categoryModuleColor;                GUILayout.BeginVertical("",boxStyleModified);                GUI.backgroundColor = Color.white;                myTarget.showHDRPFogControls = GUILayout.Toggle(myTarget.showHDRPFogControls, "HDRP Fog Controls", headerFoldout);                               if(myTarget.showHDRPFogControls)                {                     GUILayout.Space(5);                    EditorGUILayout.PropertyField(controlHDRPFog);                    GUILayout.Space(5);                    if(myTarget.Settings.controlHDRPFog)                    {                    EditorGUILayout.LabelField("Density",headerStyle);                    DisableInputStart();                    EditorGUILayout.PropertyField(fogAttenuationDistance);                     EditorGUILayout.PropertyField(baseHeight);                     EditorGUILayout.PropertyField(maxHeight);                    DisableInputEnd();                    GUILayout.Space(5);                    EditorGUILayout.LabelField("Color",headerStyle);                    EditorGUILayout.PropertyField(fogColorTint);                             }                                 }                GUILayout.EndVertical();            #endif                GUI.backgroundColor = categoryModuleColor;                GUILayout.BeginVertical("",boxStyleModified);                GUI.backgroundColor = Color.white;                myTarget.showVolumetricsControls = GUILayout.Toggle(myTarget.showVolumetricsControls, "Volumetrics Controls", headerFoldout);                               if(myTarget.showVolumetricsControls)                {                     GUILayout.Space(5);        #if !ENVIRO_HDRP                    DisableInputStartQuality();                    EditorGUILayout.PropertyField(volumetrics);                    DisableInputEndQuality();                    GUILayout.Space(5);                    if(myTarget.Settings.volumetrics && myTarget.Settings.fog)                    {                        DisableInputStartQuality();                        EditorGUILayout.PropertyField(quality);                        EditorGUILayout.PropertyField(steps);                        DisableInputEndQuality();                        DisableInputStart();                        EditorGUILayout.PropertyField(scattering);                        EditorGUILayout.PropertyField(extinction);                        EditorGUILayout.PropertyField(anistropy);                        DisableInputEnd();                        EditorGUILayout.PropertyField(maxRange);                        //EditorGUILayout.PropertyField(noiseIntensity);                        //EditorGUILayout.PropertyField(noiseScale);                        //EditorGUILayout.PropertyField(windDirection);                        //EditorGUILayout.PropertyField(noise);                        EditorGUILayout.PropertyField(ditheringTex);                                }         #else                           EditorGUILayout.PropertyField(controlHDRPVolumetrics);                    GUILayout.Space(5);                    if(myTarget.Settings.controlHDRPVolumetrics && myTarget.Settings.controlHDRPFog)                    {                        EditorGUILayout.LabelField("Global",headerStyle);                        EditorGUILayout.PropertyField(volumetricsColorTint);                        DisableInputStart();                        EditorGUILayout.PropertyField(ambientDimmer);                        DisableInputEnd();                        GUILayout.Space(5);                        EditorGUILayout.LabelField("Directional Lights",headerStyle);                        DisableInputStart();                        EditorGUILayout.PropertyField(directLightMultiplier);                        EditorGUILayout.PropertyField(directLightShadowdimmer);                        DisableInputEnd();                    }        #endif                 }                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);        }    }}
 |