| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269 | 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 frontColorGradient0,frontColorGradient1,frontColorGradient2,frontColorGradient3,frontColorGradient4,frontColorGradient5;          private SerializedProperty frontColor0,frontColor1,frontColor2,frontColor3,frontColor4,frontColor5;          private SerializedProperty sunDiscColorGradient, moonColorGradient, moonGlowColorGradient;        private SerializedProperty sunDiscColor, moonColor, moonGlowColor;        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, galaxyTex, sunTex, moonTex, moonGlowTex;        private SerializedProperty mieScatteringIntensityCurve, moonGlowIntensityCurve, starIntensityCurve, galaxyIntensityCurve;        private SerializedProperty intensity, mieScatteringIntensity,sunScale, moonScale, moonGlowScale, moonMode, moonPhase;#if ENVIRO_HDRP        private SerializedProperty skyExposureHDRP;#endif        //On Enable        public override void OnEnable()        {            if(!target)                return;            myTarget = (EnviroSkyModule)target;            serializedObj = new SerializedObject(myTarget);            preset = serializedObj.FindProperty("preset");            // 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");            //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");            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");            sunScale = serializedObj.FindProperty("Settings.sunScale");            moonScale = serializedObj.FindProperty("Settings.moonScale");            moonPhase = serializedObj.FindProperty("Settings.moonPhase");            // moonGlowScale = serializedObj.FindProperty("skySettings.moonGlowScale");           #if ENVIRO_HDRP             skyExposureHDRP = serializedObj.FindProperty("Settings.skyExposureHDRP");           #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("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);                    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("Distribution",headerStyle);                    EditorGUILayout.PropertyField(distribution0);                    EditorGUILayout.PropertyField(distribution1);                    EditorGUILayout.PropertyField(distribution2);                    EditorGUILayout.PropertyField(distribution3);                    GUILayout.Space(5);                    EditorGUILayout.LabelField("Intensity",headerStyle);                    EditorGUILayout.PropertyField(intensity);                    EditorGUILayout.PropertyField(mieScatteringIntensityCurve);            #if ENVIRO_HDRP                     GUILayout.Space(5);                     EditorGUILayout.LabelField("HDRP Settings",headerStyle);                     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);                    //EditorGUILayout.PropertyField(moonGlowTex);                    GUILayout.Space(5);                    EditorGUILayout.LabelField("Color",headerStyle);                    EditorGUILayout.PropertyField(moonColorGradient);                    //EditorGUILayout.PropertyField(moonGlowColorGradient);                     GUILayout.Space(5);                    EditorGUILayout.LabelField("Scale",headerStyle);                    EditorGUILayout.PropertyField(moonScale);                    // EditorGUILayout.PropertyField(moonGlowScale);                    //GUILayout.Space(10);                    //EditorGUILayout.LabelField("Intensity",headerStyle);                    //EditorGUILayout.PropertyField(moonGlowIntensityCurve);                }                 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(galaxyTex);                    GUILayout.Space(5);                    EditorGUILayout.LabelField("Intensity",headerStyle);                    EditorGUILayout.PropertyField(starIntensityCurve);                    EditorGUILayout.PropertyField(galaxyIntensityCurve);                }                 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);        }    }}
 |