Beispiel #1
0
        void ColorCorrection()
        {
            AC_EditorGUIUtility.Separator(SeparatorHeight);

            EditorGUILayout.PropertyField(HDR, new GUIContent("HDR"));


            EditorGUILayout.PropertyField(enableDithering, new GUIContent("Enable Dithering"));

            if (enableDithering.boolValue)
            {
                EditorGUILayout.PropertyField(blueNoiseTexture, new GUIContent("Blue Noise Texture"));
            }


            EditorGUILayout.BeginHorizontal();
            {
                EditorGUILayout.PropertyField(exposure, new GUIContent(""));
                GUILayout.Button(new GUIContent("?", EvaluateInfoSun), EditorStyles.miniLabel, GUILayout.Width(InfoWidth));
            }
            EditorGUILayout.EndHorizontal();

            EditorGUILayout.PropertyField(colorSpace, new GUIContent("Color Space"));

            AC_EditorGUIUtility.Separator(SeparatorHeight);
            EditorGUILayout.Separator();
            //-------------------------------------------------------------------------------------------------------------------------------
        }
        protected virtual void LastUpdateInspector()
        {
            #region Unity Events

            AC_EditorGUIUtility.ShurikenFoldoutHeader("Value Events", TextTitleStyle, ref m_ValueEventsFoldout);
            if (m_ValueEventsFoldout)
            {
                EditorGUILayout.PropertyField(OnInvalidValue, new GUIContent("On Invalid Value"));
            }

            AC_EditorGUIUtility.ShurikenFoldoutHeader("Time Events", TextTitleStyle, ref m_TimeEventsFoldout);

            if (m_TimeEventsFoldout)
            {
                EditorGUILayout.PropertyField(OnHour, new GUIContent("On Hour"));
                EditorGUILayout.PropertyField(OnMinute, new GUIContent("On Minute"));
            }

            AC_EditorGUIUtility.ShurikenFoldoutHeader("Date Events", TextTitleStyle, ref m_DateEventsFoldout);
            if (m_DateEventsFoldout)
            {
                EditorGUILayout.PropertyField(OnDay, new GUIContent("On Day"));
                EditorGUILayout.PropertyField(OnMonth, new GUIContent("On Month"));
                EditorGUILayout.PropertyField(OnYear, new GUIContent("On Year"));
            }

            #endregion
        }
Beispiel #3
0
        void OnInspectorOtherSettings()
        {
            AC_EditorGUIUtility.ShurikenFoldoutHeader("Other Settings", TextTitleStyle, ref m_OtherSettingsFoldout);
            if (m_OtherSettingsFoldout)
            {
                AC_EditorGUIUtility.ShurikenHeader("Color Correction", TextSectionStyle, 20);
                EditorGUILayout.Separator();

                //GUI.backgroundColor = m_HDR.boolValue ? green : red;
                EditorGUILayout.PropertyField(m_HDR, new GUIContent("HDR"));
                // GUI.backgroundColor = Color.white;
                AC_EditorGUIUtility.Separator(2);
                EditorGUILayout.Separator();

                EditorGUILayout.PropertyField(m_Exposure, new GUIContent("Exposure"));
                AC_EditorGUIUtility.Separator(2);
                EditorGUILayout.Separator();


                AC_EditorGUIUtility.ShurikenHeader("Eclipse", TextSectionStyle, 20);
                EditorGUILayout.Separator();

                EditorGUILayout.PropertyField(m_SolarEclipseThreshold, new GUIContent("Solar Eclipse Threshold"));
            }
        }
        /*
         * protected override void UpdateInspector()
         * {
         *
         *  base.UpdateInspector();
         *
         * }*/


        protected override void LastUpdateInspector()
        {
            #region Location.

            AC_EditorGUIUtility.ShurikenFoldoutHeader("Location", TextTitleStyle, ref m_LocationFoldout);

            if (m_LocationFoldout)
            {
                AC_EditorGUIUtility.ShurikenHeader("Location", TextSectionStyle, 20);
                EditorGUILayout.Separator();

                EditorGUILayout.PropertyField(m_Latitude, new GUIContent("Latitude"));
                EditorGUILayout.Separator();

                EditorGUILayout.PropertyField(m_Longitude, new GUIContent("Longitude"));
                EditorGUILayout.Separator();


                EditorGUILayout.PropertyField(m_UTC, new GUIContent("UTC"));
                EditorGUILayout.Separator();
            }

            #endregion



            base.LastUpdateInspector();
        }
Beispiel #5
0
        public override void OnInspectorGUI()
        {
            serObj.Update();

            AC_EditorGUIUtility.ShurikenHeader(Title, TextTitleStyle, 30);

            _OnInspectorGUI();

            serObj.ApplyModifiedProperties();
        }
Beispiel #6
0
        protected void OnInspectorResoucresAndComponents()
        {
            AC_EditorGUIUtility.ShurikenFoldoutHeader("Resources And Components", TextTitleStyle, ref m_ResourcesAndComponentsFoldout);

            if (m_ResourcesAndComponentsFoldout)
            {
                // Resources.
                AC_EditorGUIUtility.ShurikenHeader("Resources", TextSectionStyle, 20);


                GUI.backgroundColor = (m_Resources.objectReferenceValue != null) ? green : red;
                EditorGUILayout.PropertyField(m_Resources, new GUIContent("Resources"));
                GUI.backgroundColor = Color.white;

                if (m_Resources.objectReferenceValue == null)
                {
                    EditorGUILayout.HelpBox("Resources Data is not assigned", MessageType.Warning);
                }
                else
                {
                    EditorGUILayout.HelpBox("Be sure to allocate all resources", MessageType.Info);
                }

                EditorGUILayout.Separator();


                // Build.
                AC_EditorGUIUtility.ShurikenHeader("Build", TextSectionStyle, 20);
                EditorGUILayout.Separator();

                GUI.backgroundColor = (m_Resources.objectReferenceValue != null) ? green : red;
                if (GUILayout.Button("Build Sky Sphere", GUILayout.Height(30)))
                {
                    tar.BuildSkySphere();
                }
                GUI.backgroundColor = Color.white;

                EditorGUILayout.Separator();


                AC_EditorGUIUtility.ShurikenHeader("Camera", TextSectionStyle, 20);

                GUI.backgroundColor = (m_Camera.objectReferenceValue != null) ? green : red;
                EditorGUILayout.PropertyField(m_Camera, new GUIContent("Camera"));
                GUI.backgroundColor = Color.white;

                if (m_Camera.objectReferenceValue == null)
                {
                    EditorGUILayout.HelpBox("Camera is not assigned", MessageType.Warning);
                }

                EditorGUILayout.Separator();
            }
        }
Beispiel #7
0
        public override void OnInspectorGUI()
        {
            serObj.Update();

            GUI.color = Color.white;
            EditorGUILayout.Separator();
            AC_EditorGUIUtility.ShurikenHeader("LSky", TextTitleStyle, 30);

            AC_EditorGUIUtility.ShurikenFoldoutHeader("Components And Resources", TextTitleStyle, CRFoldout);
            if (CRFoldout.boolValue)
            {
                ComponentsAndResources();
            }

            AC_EditorGUIUtility.ShurikenFoldoutHeader("Atmosphere", TextTitleStyle, atmosphereFoldout);
            if (atmosphereFoldout.boolValue)
            {
                Atmosphere();
            }

            AC_EditorGUIUtility.ShurikenFoldoutHeader("Celestials", TextTitleStyle, celestialsFoldout);
            if (celestialsFoldout.boolValue)
            {
                Celestials();
            }

            AC_EditorGUIUtility.ShurikenFoldoutHeader("Color Correction", TextTitleStyle, colorCorrectionFoldout);
            if (colorCorrectionFoldout.boolValue)
            {
                ColorCorrection();
            }


            AC_EditorGUIUtility.ShurikenFoldoutHeader("Lighting", TextTitleStyle, lightingFoldout);
            if (lightingFoldout.boolValue)
            {
                Lighting();
            }

            serObj.ApplyModifiedProperties();
        }
Beispiel #8
0
        protected void OnInspectorCelestials()
        {
            AC_EditorGUIUtility.ShurikenFoldoutHeader("Celestials", TextTitleStyle, ref m_CelestialsFoldout);

            if (m_CelestialsFoldout)
            {
                // Background.

                AC_EditorGUIUtility.ShurikenHeader("Background", TextSectionStyle, 20);
                EditorGUILayout.Separator();

                EditorGUILayout.PropertyField(m_BackgroundMeshQuality, new GUIContent("Background Mesh Quality"));

                AC_EditorGUIUtility.Separator(2);
                EditorGUILayout.Separator();


                EditorGUILayout.PropertyField(m_BackgroundColor, new GUIContent("Background Color"));
                EditorGUILayout.PropertyField(m_BackgroundIntensity, new GUIContent("Background Intensity"));

                EditorGUILayout.BeginVertical(EditorStyles.helpBox);

                EditorGUILayout.PropertyField(m_BackgroundIntensityMultiplier, new GUIContent("Background Intensity Multiplier"));
                EditorGUILayout.HelpBox(EvaluateByFullSun, MessageType.Info);

                EditorGUILayout.EndVertical();

                EditorGUILayout.Separator();


                // Stars Field
                AC_EditorGUIUtility.ShurikenHeader("Stars Field", TextSectionStyle, 20);
                EditorGUILayout.Separator();


                EditorGUILayout.PropertyField(m_StarsFieldMeshQuality, new GUIContent("Stars Field Mesh Quality"));
                AC_EditorGUIUtility.Separator(2);

                EditorGUILayout.PropertyField(m_StarsFieldColor, new GUIContent("Stars Field Color"));
                EditorGUILayout.PropertyField(m_StarsFieldIntensity, new GUIContent("Stars Field Intensity"));

                EditorGUILayout.BeginVertical(EditorStyles.helpBox);

                EditorGUILayout.PropertyField(m_StarsFieldIntensityMultiplier, new GUIContent("Stars Field Intensity Multiplier"));
                EditorGUILayout.HelpBox(EvaluateByFullSun, MessageType.Info);

                EditorGUILayout.EndVertical();

                EditorGUILayout.PropertyField(m_StarsFieldScintillation, new GUIContent("Stars Field Scintillation"));
                EditorGUILayout.PropertyField(m_StarsFieldScintillationSpeed, new GUIContent("Stars Field Scintillation Speed"));
                AC_EditorGUIUtility.Separator(2);

                EditorGUILayout.Separator();



                // Sun.

                AC_EditorGUIUtility.ShurikenHeader("Sun", TextSectionStyle, 20);
                EditorGUILayout.Separator();


                EditorGUILayout.PropertyField(m_SunPI, new GUIContent("Sun PI"));
                EditorGUILayout.PropertyField(m_SunTheta, new GUIContent("Sun Theta"));
                AC_EditorGUIUtility.Separator(2);
                EditorGUILayout.Separator();

                EditorGUILayout.PropertyField(m_SunSize, new GUIContent("SunSize"));

                EditorGUILayout.PropertyField(m_SunColor, new GUIContent("Sun Color"));
                EditorGUILayout.PropertyField(m_SunIntensity, new GUIContent("Sun Intensity"));


                EditorGUILayout.Separator();



                // Moon.

                AC_EditorGUIUtility.ShurikenHeader("Moon", TextSectionStyle, 20);
                EditorGUILayout.Separator();


                EditorGUILayout.PropertyField(m_MoonMeshQuality, new GUIContent("Moon Mesh Quality"));
                AC_EditorGUIUtility.Separator(2);
                EditorGUILayout.Separator();

                EditorGUILayout.PropertyField(m_MoonPI, new GUIContent("Moon PI"));
                EditorGUILayout.PropertyField(m_MoonTheta, new GUIContent("Moon Theta"));
                AC_EditorGUIUtility.Separator(2);
                EditorGUILayout.Separator();

                EditorGUILayout.PropertyField(m_MoonSize, new GUIContent("MoonSize"));
                EditorGUILayout.PropertyField(m_MoonColor, new GUIContent("Moon Color"));
                EditorGUILayout.PropertyField(m_MoonIntensity, new GUIContent("Moon Intensity"));


                EditorGUILayout.Separator();
            }
        }
        protected override void _OnInspectorGUI()
        {
            #region Time.

            AC_EditorGUIUtility.ShurikenFoldoutHeader("Time", TextTitleStyle, ref m_TimeFoldout);

            if (m_TimeFoldout)
            {
                AC_EditorGUIUtility.ShurikenHeader("Timeline", TextSectionStyle, 20);
                EditorGUILayout.Separator();

                GUI.backgroundColor = m_ProgressTime.boolValue ? green : red;

                EditorGUILayout.PropertyField(m_ProgressTime, new GUIContent("ProgressTime"));

                EditorGUILayout.BeginVertical(EditorStyles.helpBox);
                EditorGUILayout.PropertyField(m_Timeline, new GUIContent("Timeline"));
                EditorGUILayout.EndVertical();

                GUI.backgroundColor = Color.white;

                EditorGUILayout.Separator();


                AC_EditorGUIUtility.ShurikenHeader("Time Length", TextSectionStyle, 20);
                EditorGUILayout.Separator();

                if (!m_SyncWithSystem.boolValue)
                {
                    GUI.backgroundColor = m_UseDayNightLength.boolValue ? green : red;

                    EditorGUILayout.PropertyField(m_UseDayNightLength, new GUIContent("Use Day Night Length"));

                    GUI.backgroundColor = Color.white;

                    EditorGUILayout.BeginVertical(EditorStyles.helpBox);
                    if (m_UseDayNightLength.boolValue)
                    {
                        if (!OverrideDayRange)
                        {
                            // Day Range.
                            float min = m_DayRange.vector2Value.x;
                            float max = m_DayRange.vector2Value.y;

                            AC_EditorGUIUtility.ShurikenHeader("Day Range", TextSectionStyle, 20);

                            EditorGUILayout.BeginHorizontal();
                            {
                                EditorGUILayout.MinMaxSlider(ref min, ref max, 0, 24);

                                m_DayRange.vector2Value = new Vector2(min, max);

                                EditorGUILayout.PropertyField(m_DayRange, new GUIContent(""));
                            }
                            EditorGUILayout.EndHorizontal();

                            string startInfo = "Day Start: " + CSky_DateTimeHelper.TimeToString
                                               (
                                CSky_DateTimeHelper.GetTimelineHour(min),
                                CSky_DateTimeHelper.GetTimelineMinute(min)
                                               );

                            string endInfo = "Day End: " + CSky_DateTimeHelper.TimeToString
                                             (
                                CSky_DateTimeHelper.GetTimelineHour(max),
                                CSky_DateTimeHelper.GetTimelineMinute(max)
                                             );
                            EditorGUILayout.HelpBox(startInfo + " | " + endInfo, MessageType.Info);

                            EditorGUILayout.Separator();
                        }
                        AC_EditorGUIUtility.Separator(2);
                        EditorGUILayout.PropertyField(m_DayLength, new GUIContent("Day In Minutes"));
                        EditorGUILayout.PropertyField(m_NightLength, new GUIContent("Night In Minutes"));
                    }
                    else
                    {
                        EditorGUILayout.PropertyField(m_DayLength, new GUIContent("Day In Minutes"));
                    }
                    EditorGUILayout.Separator();
                    EditorGUILayout.EndVertical();
                }
                EditorGUILayout.Separator();


                AC_EditorGUIUtility.ShurikenHeader("Set Time", TextSectionStyle, 20);

                EditorGUILayout.BeginVertical(EditorStyles.helpBox);
                {
                    EditorGUILayout.PropertyField(m_Hour, new GUIContent("Hour"));
                    EditorGUILayout.PropertyField(m_Minute, new GUIContent("Minute"));
                    EditorGUILayout.PropertyField(m_Second, new GUIContent("Second"));

                    GUI.backgroundColor = green;
                    if (GUILayout.Button("Set Time", GUILayout.MinHeight(30)))
                    {
                        tar.Hour   = m_Hour.intValue;
                        tar.Minute = m_Minute.intValue;
                        tar.Second = m_Second.intValue;
                    }
                    GUI.backgroundColor = Color.white;
                }
                EditorGUILayout.EndVertical();

                EditorGUILayout.Separator();
            }

            #endregion


            #region Date

            AC_EditorGUIUtility.ShurikenFoldoutHeader("Date", TextTitleStyle, ref m_DateFoldout);
            if (m_DateFoldout)
            {
                EditorGUILayout.PropertyField(m_Day, new GUIContent("Day"));
                EditorGUILayout.PropertyField(m_Month, new GUIContent("Month"));
                EditorGUILayout.PropertyField(m_Year, new GUIContent("Year"));
            }

            #endregion

            AC_EditorGUIUtility.ShurikenFoldoutHeader("Options", TextTitleStyle, ref m_OptionsFoldout);
            if (m_OptionsFoldout)
            {
                GUI.backgroundColor = m_SyncWithSystem.boolValue ? Color.green : Color.red;
                EditorGUILayout.Separator();
                EditorGUILayout.PropertyField(m_SyncWithSystem, new GUIContent("Synchronize With System DateTime"));
                EditorGUILayout.Separator();
                GUI.backgroundColor = Color.white;
            }



            LastUpdateInspector();
        }
Beispiel #10
0
        void Lighting()
        {
            AC_EditorGUIUtility.Separator(SeparatorHeight);

            EditorGUILayout.BeginHorizontal();
            {
                EditorGUILayout.PropertyField(sunLightColor, new GUIContent(""));
                GUILayout.Button(new GUIContent("?", EvaluateInfoSun), EditorStyles.miniLabel, GUILayout.Width(InfoWidth));
            }
            EditorGUILayout.EndHorizontal();


            EditorGUILayout.BeginHorizontal();
            {
                EditorGUILayout.PropertyField(sunLightIntensity, new GUIContent(""));
                GUILayout.Button(new GUIContent("?", EvaluateInfoSun), EditorStyles.miniLabel, GUILayout.Width(InfoWidth));
            }
            EditorGUILayout.EndHorizontal();

            EditorGUILayout.BeginHorizontal();
            {
                EditorGUILayout.PropertyField(sunLightThreshold, new GUIContent("Sun Light Threshold"));
                GUILayout.Button(new GUIContent("?", "Enable/Disable sun light threshold"), EditorStyles.miniLabel, GUILayout.Width(InfoWidth));
            }
            EditorGUILayout.EndHorizontal();


            AC_EditorGUIUtility.Separator(SeparatorHeight);
            EditorGUILayout.Separator();
            //-------------------------------------------------------------------------------------------------------------------------------

            EditorGUILayout.BeginHorizontal();
            {
                EditorGUILayout.PropertyField(moonLightColor, new GUIContent(""));
                GUILayout.Button(new GUIContent("?", EvaluateInfoMoonAbove), EditorStyles.miniLabel, GUILayout.Width(InfoWidth));
            }
            EditorGUILayout.EndHorizontal();

            EditorGUILayout.BeginHorizontal();
            {
                EditorGUILayout.PropertyField(moonLightIntensity, new GUIContent(""));
                GUILayout.Button(new GUIContent("?", EvaluateInfoMoonAbove), EditorStyles.miniLabel, GUILayout.Width(InfoWidth));
            }
            EditorGUILayout.EndHorizontal();

            EditorGUILayout.BeginHorizontal();
            {
                EditorGUILayout.PropertyField(moonLightMultiplier, new GUIContent("Sun Light Threshold"));
                GUILayout.Button(new GUIContent("?", EvaluateInfoSun), EditorStyles.miniLabel, GUILayout.Width(InfoWidth));
            }
            EditorGUILayout.EndHorizontal();

            AC_EditorGUIUtility.Separator(SeparatorHeight);
            EditorGUILayout.Separator();
            //-------------------------------------------------------------------------------------------------------------------------------

            EditorGUILayout.PropertyField(ambientMode, new GUIContent("Ambient Mode"));

            if (ambientMode.enumValueIndex != 3)
            {
                if (ambientMode.enumValueIndex == 0)
                {
                    EditorGUILayout.BeginHorizontal();
                    {
                        EditorGUILayout.PropertyField(ambientIntensity, new GUIContent("Ambient Intensity"));
                        GUILayout.Button(new GUIContent("?", EvaluateInfoSun), EditorStyles.miniLabel, GUILayout.Width(InfoWidth));
                    }
                    EditorGUILayout.EndHorizontal();
                }

                if (ambientMode.enumValueIndex != 0)
                {
                    EditorGUILayout.BeginHorizontal();
                    {
                        EditorGUILayout.PropertyField(ambientSkyColor, new GUIContent("Ambient Sky Color"));
                        GUILayout.Button(new GUIContent("?", EvaluateInfoSun), EditorStyles.miniLabel, GUILayout.Width(InfoWidth));
                    }
                    EditorGUILayout.EndHorizontal();
                }

                if (ambientMode.enumValueIndex == 1)
                {
                    EditorGUILayout.BeginHorizontal();
                    {
                        EditorGUILayout.PropertyField(ambientEquatorColor, new GUIContent("Ambient Equator Color"));
                        GUILayout.Button(new GUIContent("?", EvaluateInfoSun), EditorStyles.miniLabel, GUILayout.Width(InfoWidth));
                    }
                    EditorGUILayout.EndHorizontal();
                }
            }

            EditorGUILayout.BeginHorizontal();
            {
                EditorGUILayout.PropertyField(ambientGroundColor, new GUIContent("Ambient Ground Color"));
                GUILayout.Button(new GUIContent("?", EvaluateInfoSun), EditorStyles.miniLabel, GUILayout.Width(InfoWidth));
            }
            EditorGUILayout.EndHorizontal();

            AC_EditorGUIUtility.Separator(SeparatorHeight);
            EditorGUILayout.Separator();
            //-------------------------------------------------------------------------------------------------------------------------------

            EditorGUILayout.PropertyField(enableUnityFog, new GUIContent("Enable Unity Fog"));

            if (enableUnityFog.boolValue)
            {
                EditorGUILayout.PropertyField(unityFogMode, new GUIContent("Unity Fog Mode"));

                EditorGUILayout.BeginHorizontal();
                {
                    EditorGUILayout.PropertyField(unityFogColor, new GUIContent(""));
                    GUILayout.Button(new GUIContent("?", EvaluateInfoSun), EditorStyles.miniLabel, GUILayout.Width(InfoWidth));
                }
                EditorGUILayout.EndHorizontal();

                if (unityFogMode.enumValueIndex != 0)
                {
                    EditorGUILayout.BeginHorizontal();
                    {
                        EditorGUILayout.PropertyField(unityFogDensity, new GUIContent(""));
                        GUILayout.Button(new GUIContent("?", EvaluateInfoSun), EditorStyles.miniLabel, GUILayout.Width(InfoWidth));
                    }
                    EditorGUILayout.EndHorizontal();
                }
                else
                {
                    EditorGUILayout.BeginHorizontal();
                    {
                        EditorGUILayout.PropertyField(unityFogStartDistance, new GUIContent(""));
                        GUILayout.Button(new GUIContent("?", EvaluateInfoSun), EditorStyles.miniLabel, GUILayout.Width(InfoWidth));
                    }
                    EditorGUILayout.EndHorizontal();


                    EditorGUILayout.BeginHorizontal();
                    {
                        EditorGUILayout.PropertyField(unityFogEndDistance, new GUIContent(""));
                        GUILayout.Button(new GUIContent("?", EvaluateInfoSun), EditorStyles.miniLabel, GUILayout.Width(InfoWidth));
                    }
                    EditorGUILayout.EndHorizontal();
                }
            }

            AC_EditorGUIUtility.Separator(SeparatorHeight);
            EditorGUILayout.Separator();
            //-------------------------------------------------------------------------------------------------------------------------------
        }
Beispiel #11
0
        void Celestials()
        {
            AC_EditorGUIUtility.Separator(SeparatorHeight);

            EditorGUILayout.PropertyField(enableSunDisc, new GUIContent("Sun Disc"));
            if (enableSunDisc.boolValue)
            {
                EditorGUILayout.BeginHorizontal();
                {
                    EditorGUILayout.PropertyField(sunDiscSize, new GUIContent(""));
                    GUILayout.Button(new GUIContent("?", EvaluateInfoSunAbove), EditorStyles.miniLabel, GUILayout.Width(InfoWidth));
                }
                EditorGUILayout.EndHorizontal();

                EditorGUILayout.BeginHorizontal();
                {
                    EditorGUILayout.PropertyField(sunDiscColor, new GUIContent(""));
                    GUILayout.Button(new GUIContent("?", EvaluateInfoSunAbove), EditorStyles.miniLabel, GUILayout.Width(InfoWidth));
                }
                EditorGUILayout.EndHorizontal();
            }

            AC_EditorGUIUtility.Separator(SeparatorHeight);
            EditorGUILayout.Separator();
            //-------------------------------------------------------------------------------------------------------------------------------

            EditorGUILayout.PropertyField(enableMoon, new GUIContent("Moon"));
            if (enableMoon.boolValue)
            {
                EditorGUILayout.BeginHorizontal();
                {
                    EditorGUILayout.PropertyField(moonSize, new GUIContent(""));
                    GUILayout.Button(new GUIContent("?", EvaluateInfoMoonAbove), EditorStyles.miniLabel, GUILayout.Width(InfoWidth));
                }
                EditorGUILayout.EndHorizontal();

                EditorGUILayout.BeginHorizontal();
                {
                    EditorGUILayout.PropertyField(moonColor, new GUIContent(""));
                    GUILayout.Button(new GUIContent("?", EvaluateInfoMoonAbove), EditorStyles.miniLabel, GUILayout.Width(InfoWidth));
                }
                EditorGUILayout.EndHorizontal();

                EditorGUILayout.BeginHorizontal();
                {
                    EditorGUILayout.PropertyField(moonIntensity, new GUIContent(""));
                    GUILayout.Button(new GUIContent("?", EvaluateInfoMoonAbove), EditorStyles.miniLabel, GUILayout.Width(InfoWidth));
                }
                EditorGUILayout.EndHorizontal();

                EditorGUILayout.BeginHorizontal();
                {
                    EditorGUILayout.PropertyField(moonMultiplier, new GUIContent(""));
                    GUILayout.Button(new GUIContent("?", EvaluateInfoSun), EditorStyles.miniLabel, GUILayout.Width(InfoWidth));
                }
                EditorGUILayout.EndHorizontal();
            }

            AC_EditorGUIUtility.Separator(SeparatorHeight);
            EditorGUILayout.Separator();
            //-------------------------------------------------------------------------------------------------------------------------------


            EditorGUILayout.PropertyField(enableStars, new GUIContent("Stars"));
            if (enableStars.boolValue)
            {
                EditorGUILayout.BeginHorizontal();
                {
                    EditorGUILayout.PropertyField(starsColor, new GUIContent(""));
                    GUILayout.Button(new GUIContent("?", EvaluateInfoSun), EditorStyles.miniLabel, GUILayout.Width(InfoWidth));
                }
                EditorGUILayout.EndHorizontal();

                EditorGUILayout.BeginHorizontal();
                {
                    EditorGUILayout.PropertyField(starsIntensity, new GUIContent(""));
                    GUILayout.Button(new GUIContent("?", EvaluateInfoSun), EditorStyles.miniLabel, GUILayout.Width(InfoWidth));
                }
                EditorGUILayout.EndHorizontal();

                EditorGUILayout.BeginHorizontal();
                {
                    EditorGUILayout.PropertyField(starsScintillation, new GUIContent(""));
                    GUILayout.Button(new GUIContent("?", EvaluateInfoSun), EditorStyles.miniLabel, GUILayout.Width(InfoWidth));
                }
                EditorGUILayout.EndHorizontal();

                EditorGUILayout.BeginHorizontal();
                {
                    EditorGUILayout.PropertyField(starsScintillationSpeed, new GUIContent(""));
                    GUILayout.Button(new GUIContent("?", EvaluateInfoSun), EditorStyles.miniLabel, GUILayout.Width(InfoWidth));
                }
                EditorGUILayout.EndHorizontal();
            }

            AC_EditorGUIUtility.Separator(SeparatorHeight);
            EditorGUILayout.Separator();
            //-------------------------------------------------------------------------------------------------------------------------------


            EditorGUILayout.PropertyField(enableNebula, new GUIContent("Nebula"));
            if (enableNebula.boolValue)
            {
                EditorGUILayout.BeginHorizontal();
                {
                    EditorGUILayout.PropertyField(nebulaColor, new GUIContent(""));
                    GUILayout.Button(new GUIContent("?", EvaluateInfoSun), EditorStyles.miniLabel, GUILayout.Width(InfoWidth));
                }
                EditorGUILayout.EndHorizontal();

                EditorGUILayout.BeginHorizontal();
                {
                    EditorGUILayout.PropertyField(nebulaIntensity, new GUIContent(""));
                    GUILayout.Button(new GUIContent("?", EvaluateInfoSun), EditorStyles.miniLabel, GUILayout.Width(InfoWidth));
                }
                EditorGUILayout.EndHorizontal();
            }

            if (enableStars.boolValue || enableNebula.boolValue)
            {
                EditorGUILayout.PropertyField(outerSpaceOffset, new GUIContent("Offsets"));
            }


            AC_EditorGUIUtility.Separator(SeparatorHeight);
            EditorGUILayout.Separator();
            //-------------------------------------------------------------------------------------------------------------------------------
        }
Beispiel #12
0
        void Atmosphere()
        {
            AC_EditorGUIUtility.Separator(SeparatorHeight);

            EditorGUILayout.BeginHorizontal();
            {
                EditorGUILayout.PropertyField(wavelengthR, new GUIContent(""));
                GUILayout.Button(new GUIContent("?", EvaluateInfoSun), EditorStyles.miniLabel, GUILayout.Width(InfoWidth));
            }
            EditorGUILayout.EndHorizontal();

            EditorGUILayout.BeginHorizontal();
            {
                EditorGUILayout.PropertyField(wavelengthG, new GUIContent(""));
                GUILayout.Button(new GUIContent("?", EvaluateInfoSun), EditorStyles.miniLabel, GUILayout.Width(InfoWidth));
            }
            EditorGUILayout.EndHorizontal();

            EditorGUILayout.BeginHorizontal();
            {
                EditorGUILayout.PropertyField(wavelengthB, new GUIContent(""));
                GUILayout.Button(new GUIContent("?", EvaluateInfoSun), EditorStyles.miniLabel, GUILayout.Width(InfoWidth));
            }
            EditorGUILayout.EndHorizontal();

            EditorGUILayout.BeginHorizontal();
            {
                EditorGUILayout.PropertyField(atmosphereThickness, new GUIContent(""));
                GUILayout.Button(new GUIContent("?", EvaluateInfoSun), EditorStyles.miniLabel, GUILayout.Width(InfoWidth));
            }
            EditorGUILayout.EndHorizontal();

            AC_EditorGUIUtility.Separator(SeparatorHeight);
            EditorGUILayout.Separator();
            //-------------------------------------------------------------------------------------------------------------------------------


            EditorGUILayout.BeginHorizontal();
            {
                EditorGUILayout.PropertyField(dayAtmosphereTint, new GUIContent(""));
                GUILayout.Button(new GUIContent("?", EvaluateInfoSunAbove), EditorStyles.miniLabel, GUILayout.Width(InfoWidth));
            }
            EditorGUILayout.EndHorizontal();


            EditorGUILayout.PropertyField(nightColorType, new GUIContent("Night Color Type"));
            moonInfluence.boolValue = EditorGUILayout.Toggle(new GUIContent("Moon Influence", "The moon affects the color of the atmosphere"), moonInfluence.boolValue, EditorStyles.radioButton);


            EditorGUILayout.BeginHorizontal();
            {
                EditorGUILayout.PropertyField(nightAtmosphereTint, new GUIContent(""));
                GUILayout.Button(new GUIContent("?", moonInfluence.boolValue ? EvaluateInfoMoonAbove : EvaluateInfoSunBelow), EditorStyles.miniLabel, GUILayout.Width(InfoWidth));
            }
            EditorGUILayout.EndHorizontal();

            AC_EditorGUIUtility.Separator(SeparatorHeight);
            EditorGUILayout.Separator();
            //-------------------------------------------------------------------------------------------------------------------------------

            EditorGUILayout.BeginHorizontal();
            {
                EditorGUILayout.PropertyField(sunBrightness, new GUIContent(""));
                GUILayout.Button(new GUIContent("?", EvaluateInfoSun), EditorStyles.miniLabel, GUILayout.Width(InfoWidth));
            }
            EditorGUILayout.EndHorizontal();


            EditorGUILayout.BeginHorizontal();
            {
                EditorGUILayout.PropertyField(mie, new GUIContent(""));
                GUILayout.Button(new GUIContent("?", EvaluateInfoSun), EditorStyles.miniLabel, GUILayout.Width(InfoWidth));
            }
            EditorGUILayout.EndHorizontal();

            AC_EditorGUIUtility.Separator(SeparatorHeight);
            EditorGUILayout.Separator();
            //-------------------------------------------------------------------------------------------------------------------------------

            EditorGUILayout.BeginHorizontal();
            {
                EditorGUILayout.PropertyField(sunMieColor, new GUIContent(""));
                GUILayout.Button(new GUIContent("?", EvaluateInfoSunAbove), EditorStyles.miniLabel, GUILayout.Width(InfoWidth));
            }
            EditorGUILayout.EndHorizontal();

            EditorGUILayout.BeginHorizontal();
            {
                EditorGUILayout.PropertyField(sunMieAnisotropy, new GUIContent(""));
                GUILayout.Button(new GUIContent("?", EvaluateInfoSunAbove), EditorStyles.miniLabel, GUILayout.Width(InfoWidth));
            }
            EditorGUILayout.EndHorizontal();

            EditorGUILayout.BeginHorizontal();
            {
                EditorGUILayout.PropertyField(sunMieScattering, new GUIContent(""));
                GUILayout.Button(new GUIContent("?", EvaluateInfoSunAbove), EditorStyles.miniLabel, GUILayout.Width(InfoWidth));
            }
            EditorGUILayout.EndHorizontal();

            AC_EditorGUIUtility.Separator(SeparatorHeight);
            EditorGUILayout.Separator();
            //-------------------------------------------------------------------------------------------------------------------------------

            EditorGUILayout.BeginHorizontal();
            {
                EditorGUILayout.PropertyField(moonMieColor, new GUIContent(""));
                GUILayout.Button(new GUIContent("?", EvaluateInfoMoonAbove), EditorStyles.miniLabel, GUILayout.Width(InfoWidth));
            }
            EditorGUILayout.EndHorizontal();

            EditorGUILayout.BeginHorizontal();
            {
                EditorGUILayout.PropertyField(moonMieAnisotropy, new GUIContent(""));
                GUILayout.Button(new GUIContent("?", EvaluateInfoMoonAbove), EditorStyles.miniLabel, GUILayout.Width(InfoWidth));
            }
            EditorGUILayout.EndHorizontal();

            EditorGUILayout.BeginHorizontal();
            {
                EditorGUILayout.PropertyField(moonMieScattering, new GUIContent(""));
                GUILayout.Button(new GUIContent("?", EvaluateInfoMoonAbove), EditorStyles.miniLabel, GUILayout.Width(InfoWidth));
            }
            EditorGUILayout.EndHorizontal();


            EditorGUILayout.BeginHorizontal();
            {
                EditorGUILayout.PropertyField(moonMieMultiplier, new GUIContent(""));
                GUILayout.Button(new GUIContent("?", EvaluateInfoSun), EditorStyles.miniLabel, GUILayout.Width(InfoWidth));
            }
            EditorGUILayout.EndHorizontal();

            AC_EditorGUIUtility.Separator(SeparatorHeight);
            EditorGUILayout.Separator();
            //-------------------------------------------------------------------------------------------------------------------------------
        }
Beispiel #13
0
        void ComponentsAndResources()
        {
            AC_EditorGUIUtility.Separator(SeparatorHeight);

            EditorGUILayout.PropertyField(applySkybox, new GUIContent("Apply Skybox"));
            EditorGUILayout.PropertyField(skyboxMaterial, new GUIContent("Skybox Material"));
            if (skyboxMaterial.objectReferenceValue == null)
            {
                EditorGUILayout.HelpBox("Skybox material no assigned", MessageType.Warning);
            }

            EditorGUILayout.PropertyField(moonTexture, new GUIContent("Moon Texture"));
            if (moonTexture.objectReferenceValue == null)
            {
                EditorGUILayout.HelpBox("Moon texture no assigned", MessageType.Warning);
            }

            EditorGUILayout.PropertyField(outerSpaceCube, new GUIContent("Outer Space Cube"));
            if (outerSpaceCube.objectReferenceValue == null)
            {
                EditorGUILayout.HelpBox("Outer space cubemap no assigned", MessageType.Warning);
            }


            EditorGUILayout.BeginVertical(EditorStyles.helpBox);
            {
                EditorGUILayout.PropertyField(starsCube, new GUIContent("Stars Cube"));

                EditorGUILayout.HelpBox("RGB: Stars A: Stars Twinkle", MessageType.Info);

                if (starsCube.objectReferenceValue == null)
                {
                    EditorGUILayout.HelpBox("Stars cubemap no assigned", MessageType.Warning);
                }
            }
            EditorGUILayout.EndVertical();

            EditorGUILayout.PropertyField(starsNoiseCube, new GUIContent("Stars Noise Cube"));
            if (starsNoiseCube.objectReferenceValue == null)
            {
                EditorGUILayout.HelpBox("Noise cubemap no assigned", MessageType.Warning);
            }

            AC_EditorGUIUtility.Separator(SeparatorHeight);
            EditorGUILayout.Separator();

            EditorGUILayout.PropertyField(sunLight, new GUIContent("Sun Light"));
            if (sunLight.objectReferenceValue == null)
            {
                EditorGUILayout.HelpBox("Sun light no assigned", MessageType.Warning);
            }

            EditorGUILayout.PropertyField(moonLight, new GUIContent("Moon Light"));
            if (moonLight.objectReferenceValue == null)
            {
                EditorGUILayout.HelpBox("Moon light no assigned", MessageType.Warning);
            }

            AC_EditorGUIUtility.Separator(SeparatorHeight);
            EditorGUILayout.Separator();
        }
Beispiel #14
0
        protected void OnInspectorLighting()
        {
            AC_EditorGUIUtility.ShurikenFoldoutHeader("Lighting", TextTitleStyle, ref m_LightingFoldout);

            if (m_LightingFoldout)
            {
                #region |Celestials|

                // Sun.

                AC_EditorGUIUtility.ShurikenHeader("Sun Light", TextSectionStyle, 20);
                EditorGUILayout.Separator();


                EditorGUILayout.PropertyField(m_SunLightColor, new GUIContent("Sun Light Color"));
                EditorGUILayout.PropertyField(m_SunLightIntensity, new GUIContent("Sun Light Intensity"));

                EditorGUILayout.BeginVertical(EditorStyles.helpBox);

                EditorGUILayout.PropertyField(m_SunLightIntensityMultiplier, new GUIContent("Sun Light Intensity Multiplier"));

                EditorGUILayout.HelpBox(EvaluateByAboveSun, MessageType.Info);

                EditorGUILayout.EndVertical();

                EditorGUILayout.PropertyField(m_SunLightThreshold, new GUIContent("Sun Light Threshold"));


                EditorGUILayout.Separator();


                // Moon.

                AC_EditorGUIUtility.ShurikenHeader("Moon Light", TextSectionStyle, 20);
                EditorGUILayout.Separator();

                EditorGUILayout.PropertyField(m_MoonLightColor, new GUIContent("Moon Light Color"));
                EditorGUILayout.PropertyField(m_MoonLightIntensity, new GUIContent("Moon Light Intensity"));


                EditorGUILayout.BeginVertical(EditorStyles.helpBox);

                EditorGUILayout.PropertyField(m_MoonLightIntensityMultiplier, new GUIContent("Moon Light Intensity Multiplier"));

                EditorGUILayout.HelpBox(EvaluateByAboveMoon, MessageType.Info);

                EditorGUILayout.EndVertical();

                //GUI.backgroundColor = m_DisableMoonLightInDay.boolValue ? green : red;
                EditorGUILayout.PropertyField(m_DisableMoonLightInDay, new GUIContent("Disable Moon Light In Day"));
                //GUI.backgroundColor = Color.white;

                if (m_DisableMoonLightInDay.boolValue)
                {
                    EditorGUILayout.BeginVertical(EditorStyles.helpBox);
                    EditorGUILayout.PropertyField(m_MoonLightIntensityCorrector, new GUIContent("Moon Light Intensity Corrector"));
                    EditorGUILayout.HelpBox(EvaluateByFullSun, MessageType.Info);
                    EditorGUILayout.EndVertical();
                }


                EditorGUILayout.Separator();


                #endregion


                #region Environment

                AC_EditorGUIUtility.ShurikenHeader("Environment", TextSectionStyle, 20);
                EditorGUILayout.Separator();

                EditorGUILayout.PropertyField(m_EnviroUpdateInterval, new GUIContent("Update Interval"));
                EditorGUILayout.Separator();

                // GUI.backgroundColor = m_SendSkybox.boolValue ? green : red;
                EditorGUILayout.PropertyField(m_SendSkybox, new GUIContent("Send Skybox"));
                // GUI.backgroundColor = Color.white;
                AC_EditorGUIUtility.Separator(2);
                EditorGUILayout.Separator();

                EditorGUILayout.PropertyField(m_AmbientMode, new GUIContent("Ambient Mode"));
                AC_EditorGUIUtility.Separator(2);
                EditorGUILayout.Separator();

                switch (m_AmbientMode.enumValueIndex)
                {
                case 0:

                    EditorGUILayout.PropertyField(m_AmbientIntensity, new GUIContent("Ambient Intensity"));

                    if (m_SendSkybox.boolValue)
                    {
                        EditorGUILayout.BeginVertical(EditorStyles.helpBox);

                        EditorGUILayout.PropertyField(m_AmbientSunGroundColor, new GUIContent("Ambient Ground Color"));

                        EditorGUILayout.HelpBox(EvaluateByFullSun, MessageType.Info);

                        EditorGUILayout.EndVertical();

                        EditorGUILayout.BeginVertical(EditorStyles.helpBox);

                        if (m_MoonRayleigh.boolValue)
                        {
                            EditorGUILayout.PropertyField(m_AmbientMoonGroundColor, new GUIContent("Ambient Moon Ground Color"));
                            EditorGUILayout.HelpBox(EvaluateByFullMoon + " | " + "Moon influence mode = add", MessageType.Info);
                        }

                        EditorGUILayout.EndVertical();
                    }

                    break;

                case 1:

                    EditorGUILayout.BeginVertical(EditorStyles.helpBox);

                    EditorGUILayout.PropertyField(m_AmbientSunSkyColor, new GUIContent("Ambient Sun Sky Color"));
                    EditorGUILayout.PropertyField(m_AmbientSunEquatorColor, new GUIContent("Ambient Sun Equator Color"));
                    EditorGUILayout.PropertyField(m_AmbientSunGroundColor, new GUIContent("Ambient Sun Ground Color"));

                    EditorGUILayout.HelpBox(EvaluateByFullSun, MessageType.Info);
                    EditorGUILayout.EndVertical();
                    AC_EditorGUIUtility.Separator(2);
                    EditorGUILayout.Separator();

                    if (m_MoonRayleigh.boolValue)
                    {
                        EditorGUILayout.BeginVertical(EditorStyles.helpBox);
                        EditorGUILayout.PropertyField(m_AmbientMoonSkyColor, new GUIContent("Ambient Moon Sky Color"));
                        EditorGUILayout.PropertyField(m_AmbientMoonEquatorColor, new GUIContent("Ambient Moon  Equator Color"));
                        EditorGUILayout.PropertyField(m_AmbientMoonGroundColor, new GUIContent("Ambient Moon  Ground Color"));
                        EditorGUILayout.HelpBox(EvaluateByFullMoon + "|" + "Moon influence mode = add", MessageType.Info);
                        EditorGUILayout.EndVertical();
                    }

                    break;


                case 2:
                {
                    EditorGUILayout.BeginVertical(EditorStyles.helpBox);

                    EditorGUILayout.PropertyField(m_AmbientSunSkyColor, new GUIContent("Ambient Sun Sky Color"));
                    if (m_SendSkybox.boolValue)
                    {
                        EditorGUILayout.PropertyField(m_AmbientSunGroundColor, new GUIContent("Ambient Sun Ground Color"));
                    }
                    EditorGUILayout.HelpBox(EvaluateByFullSun, MessageType.Info);

                    EditorGUILayout.EndVertical();

                    AC_EditorGUIUtility.Separator(2);
                    EditorGUILayout.Separator();

                    EditorGUILayout.BeginVertical(EditorStyles.helpBox);

                    if (m_MoonRayleigh.boolValue)
                    {
                        EditorGUILayout.PropertyField(m_AmbientMoonSkyColor, new GUIContent("Ambient Moon Sky Color"));
                        if (m_SendSkybox.boolValue)
                        {
                            EditorGUILayout.PropertyField(m_AmbientMoonGroundColor, new GUIContent("Ambient Moon Ground Color"));
                        }

                        EditorGUILayout.HelpBox(EvaluateByFullMoon + " | " + "Moon influence mode = add", MessageType.Info);
                    }

                    EditorGUILayout.EndVertical();
                }

                break;
                }

                #endregion


                #region |Unity Fog|

                AC_EditorGUIUtility.ShurikenHeader("Unity Fog", TextSectionStyle, 20);
                EditorGUILayout.Separator();

                //GUI.backgroundColor = m_EnableUnityFog.boolValue ? green : red;
                EditorGUILayout.PropertyField(m_EnableUnityFog, new GUIContent("Enable Unity Fog"));
                //GUI.backgroundColor = Color.white;
                if (m_EnableUnityFog.boolValue)
                {
                    EditorGUILayout.PropertyField(m_UnityFogMode, new GUIContent("Unity Fog Mode"));
                    AC_EditorGUIUtility.Separator(2);
                    EditorGUILayout.Separator();


                    EditorGUILayout.BeginVertical(EditorStyles.helpBox);
                    EditorGUILayout.PropertyField(m_UnitySunFogColor, new GUIContent("Unity Sun Fog Color"));
                    EditorGUILayout.HelpBox(EvaluateByFullSun, MessageType.Info);
                    EditorGUILayout.EndVertical();

                    EditorGUILayout.BeginVertical(EditorStyles.helpBox);

                    if (m_MoonRayleigh.boolValue)
                    {
                        EditorGUILayout.PropertyField(m_UnityMoonFogColor, new GUIContent("Unity Moon Fog Color"));
                        EditorGUILayout.HelpBox(EvaluateByFullMoon, MessageType.Info);
                    }

                    EditorGUILayout.EndVertical();


                    AC_EditorGUIUtility.Separator(2);
                    EditorGUILayout.Separator();

                    if (m_UnityFogMode.enumValueIndex != 0)
                    {
                        EditorGUILayout.PropertyField(m_UnityFogDensity, new GUIContent("Unity Fog Density"));
                    }
                    else
                    {
                        EditorGUILayout.PropertyField(m_UnityFogStartDistance, new GUIContent("Unity Fog Start Distance"));
                        EditorGUILayout.PropertyField(m_UnityFogEndDistance, new GUIContent("Unity Fog End Distance"));
                    }
                }


                EditorGUILayout.Separator();

                #endregion
            }
        }
Beispiel #15
0
        public override void OnInspectorGUI()
        {
            serObj.Update();

            EditorGUILayout.Separator();
            AC_EditorGUIUtility.ShurikenHeader("Time And Date", TextTitleStyle, 30);

            GUI.color = Color.white;
            EditorGUILayout.BeginVertical(EditorStyles.helpBox);
            {
                EditorGUILayout.PropertyField(m_TimeUpdateMethod, new GUIContent("Time Update Method"));
                EditorGUILayout.PropertyField(m_DateUpdateMethod, new GUIContent("Date Update Method"));
                EditorGUILayout.PropertyField(m_Progress, new GUIContent("Progress"));
            }
            EditorGUILayout.EndVertical();
            EditorGUILayout.Separator();

            EditorGUILayout.BeginVertical(EditorStyles.helpBox);
            {
                EditorGUILayout.PropertyField(m_UseSystemDateTime, new GUIContent("Use System Date Time"));
            }
            EditorGUILayout.EndVertical();
            //EditorGUILayout.Separator();

            if (!m_UseSystemDateTime.boolValue)
            {
                float min = m_DayRange.vector2Value.x;
                float max = m_DayRange.vector2Value.y;
                EditorGUILayout.BeginVertical();
                {
                    GUILayout.Label("Day Range");
                    EditorGUILayout.BeginHorizontal();
                    {
                        EditorGUILayout.MinMaxSlider(ref min, ref max, 0, 24);
                        m_DayRange.vector2Value = new Vector2(min, max);
                        EditorGUILayout.PropertyField(m_DayRange, new GUIContent(""));
                    }
                    EditorGUILayout.EndHorizontal();

                    string startInfo = "Day Start: " + LSkyTime.TimeToString
                                       (
                        LSkyTime.GetTimelineHour(min),
                        LSkyTime.GetTimelineMinute(min)
                                       );

                    string endInfo = "Day End: " + LSkyTime.TimeToString
                                     (
                        LSkyTime.GetTimelineHour(max),
                        LSkyTime.GetTimelineMinute(max)
                                     );
                    EditorGUILayout.HelpBox(startInfo + " | " + endInfo, MessageType.Info);

                    EditorGUILayout.Separator();

                    EditorGUILayout.PropertyField(m_DayLength, new GUIContent("Day In Minutes"));
                    EditorGUILayout.PropertyField(m_NightLength, new GUIContent("Night In Minutes"));
                }
                EditorGUILayout.EndVertical();
                EditorGUILayout.Separator();
            }

            EditorGUILayout.BeginVertical(EditorStyles.helpBox);
            {
                EditorGUILayout.PropertyField(m_Timeline, new GUIContent("Timeline"));
                EditorGUILayout.PropertyField(m_Day, new GUIContent("Day"));
                EditorGUILayout.PropertyField(m_Month, new GUIContent("Month"));
                EditorGUILayout.PropertyField(m_Year, new GUIContent("Year"));
            }
            EditorGUILayout.EndVertical();
            EditorGUILayout.HelpBox("Hour: " + tar.TimeDate.ToString("hh:mm:ss"), MessageType.Info);

            serObj.ApplyModifiedProperties();
        }
        protected void OnInspectorAtmosphere()
        {
            AC_EditorGUIUtility.ShurikenFoldoutHeader("Atmosphere", TextTitleStyle, ref m_AtmosphereFoldout);

            if (m_AtmosphereFoldout)
            {
                // Settings.
                AC_EditorGUIUtility.ShurikenHeader("Atmosphere Settings", TextSectionStyle, 20);
                EditorGUILayout.Separator();

                EditorGUILayout.PropertyField(m_AtmosphereMeshQuality, new GUIContent("Atmosphere Mesh Quality"));

                GUI.backgroundColor = m_AtmosphereQuality.enumValueIndex == 1 ? Color.yellow : green;
                EditorGUILayout.PropertyField(m_AtmosphereQuality, new GUIContent("Atmosphere Quality"));
                GUI.backgroundColor = Color.white;

                EditorGUILayout.PropertyField(m_AtmosphereShader, new GUIContent("Atmosphere Shader"));

                EditorGUILayout.Separator();



                // Wavelengths.

                AC_EditorGUIUtility.ShurikenHeader("Rayleigh", TextSectionStyle, 20);
                EditorGUILayout.Separator();

                GUI.backgroundColor = Color.red;
                EditorGUILayout.PropertyField(m_WavelengthR, new GUIContent("Wavelength R"));

                GUI.backgroundColor = Color.green;
                EditorGUILayout.PropertyField(m_WavelengthG, new GUIContent("Wavelength G"));

                GUI.backgroundColor = Color.blue;
                EditorGUILayout.PropertyField(m_WavelengthB, new GUIContent("Wavelength B"));

                GUI.backgroundColor = Color.white;


                EditorGUILayout.Separator();

                EditorGUILayout.PropertyField(m_AtmosphereThickness, new GUIContent("Atmosphere Thickness"));

                EditorGUILayout.Separator();



                EditorGUILayout.PropertyField(m_SunBrightness, new GUIContent("Sun Brightness"));
                AC_EditorGUIUtility.Separator(2);
                EditorGUILayout.Separator();

                EditorGUILayout.PropertyField(m_SunAtmosphereTint, new GUIContent(m_MoonRayleigh.boolValue ? "Sun Atmosphere Tint" : "Day Atmosphere Tint"));
                AC_EditorGUIUtility.Separator(2);
                EditorGUILayout.Separator();

                if (m_AtmosphereShader.enumValueIndex == 1)
                {
                    EditorGUILayout.PropertyField(m_SunIntensityFactor, new GUIContent(m_MoonRayleigh.boolValue ? "Sun Intensity Factor" : "Day Intensity Factor"));
                    AC_EditorGUIUtility.Separator(2);
                    EditorGUILayout.Separator();
                }

                //GUI.backgroundColor = m_EnableMoonInfluence.boolValue ? green : red;
                EditorGUILayout.PropertyField(m_MoonRayleigh, new GUIContent("Moon Rayleigh"));
                EditorGUILayout.Separator();


                EditorGUILayout.PropertyField(m_MoonBrightness, new GUIContent("Moon Brightness"));

                EditorGUILayout.PropertyField(m_MoonAtmosphereTint, new GUIContent(m_MoonRayleigh.boolValue ? "Moon Atmosphere Tint" : "Night Atmosphere Tint"));
                AC_EditorGUIUtility.Separator(2);
                EditorGUILayout.Separator();

                if (m_AtmosphereShader.enumValueIndex == 1)
                {
                    EditorGUILayout.PropertyField(m_MoonIntensityFactor, new GUIContent("Night Intensity Factor"));
                    AC_EditorGUIUtility.Separator(2);
                    EditorGUILayout.Separator();
                }



                EditorGUILayout.Separator();



                // Mie.
                AC_EditorGUIUtility.ShurikenHeader("Mie", TextSectionStyle, 20);
                EditorGUILayout.Separator();

                EditorGUILayout.PropertyField(m_Mie, new GUIContent("Mie"));

                if (m_AtmosphereShader.intValue == 1)
                {
                    EditorGUILayout.PropertyField(m_Turbidity, new GUIContent("Turbidity"));
                    AC_EditorGUIUtility.Separator(2);
                    EditorGUILayout.Separator();
                }

                EditorGUILayout.PropertyField(m_SunMieColor, new GUIContent("Sun Mie Color"));
                EditorGUILayout.PropertyField(m_SunMieAnisotropy, new GUIContent("Sun Mie Anisotropy"));
                EditorGUILayout.PropertyField(m_SunMieScattering, new GUIContent("Sun Mie Scattering"));
                AC_EditorGUIUtility.Separator(2);
                EditorGUILayout.Separator();

                EditorGUILayout.PropertyField(m_MoonMieColor, new GUIContent("Moon Mie Color"));
                EditorGUILayout.PropertyField(m_MoonMieAnisotropy, new GUIContent("Moon Mie Anisotropy"));
                EditorGUILayout.PropertyField(m_MoonMieScattering, new GUIContent("Moon Mie Scattering"));


                EditorGUILayout.Separator();



                // Atmosphere Other.

                AC_EditorGUIUtility.ShurikenHeader("Other", TextSectionStyle, 20);
                EditorGUILayout.Separator();


                EditorGUILayout.PropertyField(m_AtmosphereExponent, new GUIContent("Atmosphere Exponent"));
                AC_EditorGUIUtility.Separator(2);
                EditorGUILayout.Separator();


                EditorGUILayout.PropertyField(m_HorizonOffset, new GUIContent("Horizon Offset"));
                AC_EditorGUIUtility.Separator(2);
                EditorGUILayout.Separator();


                if (m_AtmosphereShader.intValue == 1)
                {
                    EditorGUILayout.PropertyField(m_RayleighZenithLength, new GUIContent("Rayleigh Zenith Length"));
                    EditorGUILayout.PropertyField(m_MieZenithLength, new GUIContent("Mie Zenith Length"));
                }
                else
                {
                    EditorGUILayout.PropertyField(m_CameraHeight, new GUIContent("Camera Height"));
                }

                // AC_EditorGUIUtility.Separator(2);
                //EditorGUILayout.Separator();


                EditorGUILayout.Separator();
            }
        }