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);
- }
- }
- }
|