123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496 |
- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine;
- using UnityEditor;
- namespace Enviro{
- [CustomEditor(typeof(EnviroManager))]
- public class EnviroManagerInspector : EnviroBaseInspector
- {
- private EnviroManager myTarget;
-
- private Editor currentTimeModuleEditor, currentSkyModuleEditor, currentLightingModuleEditor, currentFogModuleEditor, currentVolumetricCloudModuleEditor,currentFlatCloudModuleEditor,currentWeatherModuleEditor,currentAuroraModuleEditor,currentLightningModuleEditor, currentAudioModuleEditor,currentEnvironmentModuleEditor,currentEffectsModuleEditor ,currentQualityModuleEditor,currentEventModuleEditor ;
- private SerializedProperty configuration, modules, Camera, CameraTag, dontDestroyOnLoad;
- private SerializedProperty sunRotationX,sunRotationY,moonRotationX,moonRotationY;
- void OnEnable()
- {
- myTarget = (EnviroManager)target;
- serializedObj = new SerializedObject(myTarget);
- configuration = serializedObj.FindProperty("configuration");
- Camera = serializedObj.FindProperty("Camera");
- CameraTag = serializedObj.FindProperty("CameraTag");
- dontDestroyOnLoad = serializedObj.FindProperty("dontDestroyOnLoad");
- sunRotationX = serializedObj.FindProperty("sunRotationX");
- sunRotationY = serializedObj.FindProperty("sunRotationY");
- moonRotationX = serializedObj.FindProperty("moonRotationX");
- moonRotationY = serializedObj.FindProperty("moonRotationY");
- }
- public override void OnInspectorGUI()
- {
- SetupGUIStyles();
- GUILayout.BeginVertical("", boxStyle);
- GUILayout.Label("Enviro - Sky and Weather Manager",headerStyleMid);
- GUILayout.Space(5);
- GUILayout.Label("Version: 3.0.1", headerStyleMid);
-
-
- //Help Box Button
- //RenderHelpBoxButton();
- // if(showHelpBox)
- // RenderHelpBox("This is a help text test!");
- GUILayout.EndVertical();
- GUILayout.BeginVertical("",boxStyle);
- myTarget.showSetup = GUILayout.Toggle(myTarget.showSetup, "Setup", headerFoldout);
-
- EditorGUI.BeginChangeCheck();
- if(myTarget.showSetup)
- {
- GUILayout.BeginVertical("",boxStyleModified);
- GUILayout.Label("Scene", headerStyle);
- EditorGUILayout.PropertyField(dontDestroyOnLoad);
- GUILayout.Space(10);
- GUILayout.Label("Main Camera", headerStyle);
- EditorGUILayout.PropertyField(Camera);
-
- if(myTarget.Camera == null)
- CameraTag.stringValue = EditorGUILayout.TagField("Camera Tag", CameraTag.stringValue);
-
- GUILayout.Space(10);
- GUILayout.Label("Additional Cameras", headerStyle);
- GUILayout.Space(5);
- if (GUILayout.Button ("Add"))
- {
- myTarget.Cameras.Add (null);
- }
- GUILayout.Space(5);
- for (int i = 0; i < myTarget.Cameras.Count; i++)
- {
- GUILayout.BeginVertical("", boxStyleModified);
- myTarget.Cameras[i].camera = (Camera)EditorGUILayout.ObjectField ("Camera", myTarget.Cameras[i].camera, typeof(Camera), true);
- myTarget.Cameras[i].quality = (EnviroQuality)EditorGUILayout.ObjectField ("Quality", myTarget.Cameras[i].quality, typeof(EnviroQuality), true);
- if (GUILayout.Button ("Remove"))
- {
- myTarget.Cameras.RemoveAt (i);
- }
-
- GUILayout.EndVertical();
- }
- GUILayout.EndVertical();
-
- GUILayout.BeginVertical("", boxStyleModified);
- //GUILayout.Space(10);
- #if ENVIRO_HDRP
- GUILayout.Label("Render Pipeline: HDRP", headerStyle);
- #elif ENVIRO_URP
- GUILayout.Label("Render Pipeline: URP", headerStyle);
- #else
- GUILayout.Label("Render Pipeline: Legacy", headerStyle);
- #endif
- GUILayout.Space(10);
- #if !ENVIRO_HDRP
- if (GUILayout.Button("Activate HDRP Support"))
- {
- AddDefineSymbol("ENVIRO_HDRP");
- RemoveDefineSymbol("ENVIRO_URP");
- }
- #endif
- #if !ENVIRO_URP
- if (GUILayout.Button("Activate URP Support"))
- {
- AddDefineSymbol("ENVIRO_URP");
- RemoveDefineSymbol("ENVIRO_HDRP");
- }
- #endif
- #if ENVIRO_URP || ENVIRO_HDRP
- if (GUILayout.Button("Activate Legacy Support"))
- {
- RemoveDefineSymbol("ENVIRO_URP");
- RemoveDefineSymbol("ENVIRO_HDRP");
- }
- #endif
- GUILayout.EndVertical();
- }
- GUILayout.EndVertical();
- GUILayout.BeginVertical("Modules", boxStyle);
- GUILayout.Space(20);
-
-
- if(myTarget.configuration == null)
- {
- GUILayout.Label("Please assign or create a new configuration.");
- EditorGUILayout.PropertyField(configuration);
- if(GUILayout.Button("Create new Configuration"))
- {
- myTarget.configuration = EnviroConfigurationCreation.CreateMyAsset();
- serializedObj.Update();
- }
- }
- else
- {
- GUILayout.BeginVertical("", boxStyleModified);
- if(!Application.isPlaying)
- EditorGUILayout.PropertyField(configuration);
- if(GUILayout.Button("Save all Modules"))
- {
- myTarget.SaveAllModules();
- }
- if(GUILayout.Button("Load all Modules"))
- {
- myTarget.LoadAllModules();
- }
- GUILayout.EndVertical();
- GUILayout.BeginVertical("", wrapStyle);
- GUILayout.BeginHorizontal("", headerStyle);
- EditorGUI.BeginDisabledGroup(myTarget.Time != null);
- if(GUILayout.Button("Time"))
- {
- if (myTarget.Time == null)
- myTarget.AddModule(EnviroManager.ModuleType.Time);
- }
- EditorGUI.EndDisabledGroup();
- EditorGUI.BeginDisabledGroup(myTarget.Sky != null);
- if(GUILayout.Button("Sky"))
- {
- if (myTarget.Sky == null)
- myTarget.AddModule(EnviroManager.ModuleType.Sky);
- }
- EditorGUI.EndDisabledGroup();
- EditorGUI.BeginDisabledGroup(myTarget.Lighting != null);
- if(GUILayout.Button("Lighting"))
- {
- if (myTarget.Lighting == null)
- myTarget.AddModule(EnviroManager.ModuleType.Lighting);
- }
- EditorGUI.EndDisabledGroup();
- EditorGUI.BeginDisabledGroup(myTarget.Fog != null);
- if(GUILayout.Button("Fog"))
- {
- if (myTarget.Fog == null)
- myTarget.AddModule(EnviroManager.ModuleType.Fog);
- }
- EditorGUI.EndDisabledGroup();
- EditorGUI.BeginDisabledGroup(myTarget.VolumetricClouds != null);
- if(GUILayout.Button("Volumetric Clouds"))
- {
- if (myTarget.VolumetricClouds == null)
- myTarget.AddModule(EnviroManager.ModuleType.VolumetricClouds);
- }
- EditorGUI.BeginDisabledGroup(myTarget.FlatClouds != null);
- if(GUILayout.Button("Flat Clouds"))
- {
- if (myTarget.FlatClouds == null)
- myTarget.AddModule(EnviroManager.ModuleType.FlatClouds);
- }
- EditorGUI.EndDisabledGroup();
- EditorGUI.BeginDisabledGroup(myTarget.Aurora != null);
- if(GUILayout.Button("Aurora"))
- {
- if (myTarget.Aurora == null)
- myTarget.AddModule(EnviroManager.ModuleType.Aurora);
- }
- EditorGUI.EndDisabledGroup();
- EditorGUI.EndDisabledGroup();
- GUILayout.EndHorizontal();
- //////////////////////////////////////
-
- GUILayout.BeginHorizontal("", headerStyle);
-
- EditorGUI.BeginDisabledGroup(myTarget.Environment != null);
- if(GUILayout.Button("Environment"))
- {
- if (myTarget.Environment == null)
- myTarget.AddModule(EnviroManager.ModuleType.Environment);
- }
- EditorGUI.EndDisabledGroup();
- EditorGUI.BeginDisabledGroup(myTarget.Lightning != null);
- if(GUILayout.Button("Lightning"))
- {
- if (myTarget.Lightning == null)
- myTarget.AddModule(EnviroManager.ModuleType.Lightning);
- }
- EditorGUI.EndDisabledGroup();
-
- EditorGUI.BeginDisabledGroup(myTarget.Weather != null);
- if(GUILayout.Button("Weather"))
- {
- if (myTarget.Weather == null)
- myTarget.AddModule(EnviroManager.ModuleType.Weather);
- }
- EditorGUI.EndDisabledGroup();
-
- EditorGUI.BeginDisabledGroup(myTarget.Audio != null);
- if(GUILayout.Button("Audio"))
- {
- if (myTarget.Audio == null)
- myTarget.AddModule(EnviroManager.ModuleType.Audio);
- }
- EditorGUI.EndDisabledGroup();
- EditorGUI.BeginDisabledGroup(myTarget.Effects != null);
- if(GUILayout.Button("Effects"))
- {
- if (myTarget.Effects == null)
- myTarget.AddModule(EnviroManager.ModuleType.Effects);
- }
- EditorGUI.EndDisabledGroup();
- EditorGUI.BeginDisabledGroup(myTarget.Quality != null);
- if(GUILayout.Button("Quality"))
- {
- if (myTarget.Quality == null)
- myTarget.AddModule(EnviroManager.ModuleType.Quality);
- }
- EditorGUI.EndDisabledGroup();
- EditorGUI.BeginDisabledGroup(myTarget.Events != null);
- if(GUILayout.Button("Events"))
- {
- if (myTarget.Events == null)
- myTarget.AddModule(EnviroManager.ModuleType.Events);
- }
- EditorGUI.EndDisabledGroup();
- GUILayout.EndHorizontal();
- GUILayout.EndVertical();
- /////////Modules Start
- GUILayout.Space(10);
- if(myTarget.Time != null)
- {
- if(currentTimeModuleEditor == null)
- currentTimeModuleEditor = Editor.CreateEditor(myTarget.Time);
- currentTimeModuleEditor.OnInspectorGUI();
- }
- else
- {
- GUI.backgroundColor = baseModuleColor;
- GUILayout.BeginVertical("",boxStyleModified);
- GUI.backgroundColor = Color.white;
- EditorGUILayout.BeginHorizontal();
- myTarget.showNonTimeControls = GUILayout.Toggle(myTarget.showNonTimeControls, "Sun and Moon Controls", headerFoldout);
- EditorGUILayout.EndHorizontal();
- if(myTarget.showNonTimeControls)
- {
- EditorGUILayout.LabelField("This module will control your sun and moon position when no time module is used.");
- serializedObj.UpdateIfRequiredOrScript ();
- EditorGUI.BeginChangeCheck();
- GUI.backgroundColor = categoryModuleColor;
- GUILayout.BeginVertical("",boxStyleModified);
- GUI.backgroundColor = Color.white;
-
- EditorGUILayout.PropertyField(sunRotationX);
- EditorGUILayout.PropertyField(sunRotationY);
- EditorGUILayout.PropertyField(moonRotationX);
- EditorGUILayout.PropertyField(moonRotationY);
- GUILayout.EndVertical();
- }
- GUILayout.EndVertical();
-
- if(myTarget.showNonTimeControls)
- GUILayout.Space(10);
- }
- if(myTarget.Lighting != null)
- {
- if(currentLightingModuleEditor == null)
- currentLightingModuleEditor = Editor.CreateEditor(myTarget.Lighting);
- currentLightingModuleEditor.OnInspectorGUI();
- }
- if(myTarget.Sky != null)
- {
- if(currentSkyModuleEditor == null)
- currentSkyModuleEditor = Editor.CreateEditor(myTarget.Sky);
- currentSkyModuleEditor.OnInspectorGUI();
- }
- if(myTarget.Fog != null)
- {
- if(currentFogModuleEditor == null)
- currentFogModuleEditor = Editor.CreateEditor(myTarget.Fog);
- currentFogModuleEditor.OnInspectorGUI();
- }
- if(myTarget.VolumetricClouds != null)
- {
- if(currentVolumetricCloudModuleEditor == null)
- currentVolumetricCloudModuleEditor = Editor.CreateEditor(myTarget.VolumetricClouds);
- currentVolumetricCloudModuleEditor.OnInspectorGUI();
- }
-
- if(myTarget.FlatClouds != null)
- {
- if(currentFlatCloudModuleEditor == null)
- currentFlatCloudModuleEditor = Editor.CreateEditor(myTarget.FlatClouds);
- currentFlatCloudModuleEditor.OnInspectorGUI();
- }
- if(myTarget.Aurora != null)
- {
- if(currentAuroraModuleEditor == null)
- currentAuroraModuleEditor = Editor.CreateEditor(myTarget.Aurora);
- currentAuroraModuleEditor.OnInspectorGUI();
- }
- if(myTarget.Lightning != null)
- {
- if(currentLightningModuleEditor == null)
- currentLightningModuleEditor = Editor.CreateEditor(myTarget.Lightning);
- currentLightningModuleEditor.OnInspectorGUI();
- }
- if(myTarget.Environment != null)
- {
- if(currentEnvironmentModuleEditor == null)
- currentEnvironmentModuleEditor = Editor.CreateEditor(myTarget.Environment);
- currentEnvironmentModuleEditor.OnInspectorGUI();
- }
- if(myTarget.Weather != null)
- {
- if(currentWeatherModuleEditor == null)
- currentWeatherModuleEditor = Editor.CreateEditor(myTarget.Weather);
- currentWeatherModuleEditor.OnInspectorGUI();
- }
- if(myTarget.Audio != null)
- {
- if(currentAudioModuleEditor == null)
- currentAudioModuleEditor = Editor.CreateEditor(myTarget.Audio);
- currentAudioModuleEditor.OnInspectorGUI();
- }
- if(myTarget.Effects != null)
- {
- if(currentEffectsModuleEditor == null)
- currentEffectsModuleEditor = Editor.CreateEditor(myTarget.Effects);
- currentEffectsModuleEditor.OnInspectorGUI();
- }
-
- if(myTarget.Quality != null)
- {
- if(currentQualityModuleEditor == null)
- currentQualityModuleEditor = Editor.CreateEditor(myTarget.Quality);
- currentQualityModuleEditor.OnInspectorGUI();
- }
- if(myTarget.Events != null)
- {
- if(currentEventModuleEditor == null)
- currentEventModuleEditor = Editor.CreateEditor(myTarget.Events);
- currentEventModuleEditor.OnInspectorGUI();
- }
-
- }
- GUILayout.EndVertical();
- GUILayout.BeginVertical("",boxStyle);
- myTarget.showThirdParty = GUILayout.Toggle(myTarget.showThirdParty, "Third Party Support", headerFoldout);
-
- if(myTarget.showThirdParty)
- {
- GUILayout.Space(5);
- //WAPI
- GUI.backgroundColor = thirdPartyModuleColor;
- GUILayout.BeginVertical("World Manager API", boxStyleModified);
- GUI.backgroundColor = Color.white;
- GUILayout.Space(20);
- #if WORLDAPI_PRESENT
- //GUILayout.Label("World Manager API detected!", headerStyle);
- //GUILayout.Space(5);
- RenderIntegrationTextBox("You can add support for WAPI from the ('Components' -> 'Enviro 3' -> 'Integrations' -> 'WAPI') menu.");
- #else
- GUILayout.Label("World Manager API no found!", headerStyle);
- #endif
- GUILayout.EndVertical();
- //MicroSplat
- GUI.backgroundColor = thirdPartyModuleColor;
- GUILayout.BeginVertical("MicroSplat", boxStyleModified);
- GUI.backgroundColor = Color.white;
- GUILayout.Space(20);
- RenderIntegrationTextBox("You can add support for MicroSplat and Better Lit Shaders from the ('Components' -> 'Enviro 3' -> 'Integrations' -> 'Microsplat') menu.");
- GUILayout.EndVertical();
- //////////
- //Mirror
- GUI.backgroundColor = thirdPartyModuleColor;
- GUILayout.BeginVertical("Mirror Networking", boxStyleModified);
- GUI.backgroundColor = Color.white;
- GUILayout.Space(20);
- #if ENVIRO_MIRROR_SUPPORT
- //GUILayout.Label("Mirror Networking support activated.", headerStyle);
- //GUILayout.Space(5);
- RenderIntegrationTextBox("Please add the 'Mirror Server' component to a new GameObject in your scene. ('Components' -> 'Enviro 3' -> 'Integrations' -> 'Mirror Server')");
- RenderIntegrationTextBox("Please add the 'Mirror Player' component to your player prefab. ('Components' -> 'Enviro 3' -> 'Integrations' -> 'Mirror Player')");
- GUILayout.Space(10);
- if (GUILayout.Button("Deactivate Mirror Support"))
- {
- RemoveDefineSymbol("ENVIRO_MIRROR_SUPPORT");
- }
- #else
- if (GUILayout.Button("Activate Mirror Support"))
- {
- AddDefineSymbol("ENVIRO_MIRROR_SUPPORT");
- }
- if (GUILayout.Button("Deactivate Mirror Support"))
- {
- RemoveDefineSymbol("ENVIRO_MIRROR_SUPPORT");
- }
- #endif
- GUILayout.EndVertical();
- //////////
- }
- GUILayout.EndVertical();
- ApplyChanges();
- }
- }
- }
|