public override void OnInspectorGUI() { myTarget = (EnviroInterior)target; if (boxStyle == null) { boxStyle = new GUIStyle(GUI.skin.box); boxStyle.normal.textColor = GUI.skin.label.normal.textColor; boxStyle.fontStyle = FontStyle.Bold; boxStyle.alignment = TextAnchor.UpperLeft; } if (wrapStyle == null) { wrapStyle = new GUIStyle(GUI.skin.label); wrapStyle.fontStyle = FontStyle.Normal; wrapStyle.wordWrap = true; wrapStyle.alignment = TextAnchor.UpperLeft; } if (headerStyle == null) { headerStyle = new GUIStyle(GUI.skin.label); headerStyle.fontStyle = FontStyle.Bold; headerStyle.wordWrap = true; headerStyle.alignment = TextAnchor.UpperLeft; } GUILayout.BeginVertical("Enviro - Interior Zone", boxStyle); EditorGUI.BeginChangeCheck(); GUILayout.Space(20); EditorGUILayout.LabelField("Welcome to the Interior Zone for Enviro - Sky and Weather!", wrapStyle); GUILayout.EndVertical(); GUILayout.BeginVertical("Setup", boxStyle); GUILayout.Space(20); myTarget.zoneTriggerType = (EnviroInterior.ZoneTriggerType)EditorGUILayout.EnumPopup("Zone Trigger Type", myTarget.zoneTriggerType); if (GUILayout.Button("Create New Trigger")) { myTarget.CreateNewTrigger(); } for (int i = 0; i < myTarget.triggers.Count; i++) { if (myTarget.triggers[i] != null) { GUILayout.BeginVertical("", boxStyle); GUILayout.Space(10); myTarget.triggers[i].Name = EditorGUILayout.TextField("Name", myTarget.triggers[i].Name); GUILayout.Space(10); if (GUILayout.Button("Select")) { Selection.activeObject = myTarget.triggers[i].gameObject; } if (GUILayout.Button("Remove")) { myTarget.RemoveTrigger(myTarget.triggers[i]); } GUILayout.EndVertical(); } } GUILayout.EndVertical(); GUILayout.BeginVertical("Lighting", boxStyle); GUILayout.Space(20); myTarget.directLighting = EditorGUILayout.BeginToggleGroup("Direct Light Modifications", myTarget.directLighting); myTarget.directLightingMod = EditorGUILayout.ColorField("Direct Lighting Mod", myTarget.directLightingMod); myTarget.directLightFadeSpeed = EditorGUILayout.Slider("Direct Fading Speed", myTarget.directLightFadeSpeed, 0.01f, 100f); EditorGUILayout.EndToggleGroup(); myTarget.ambientLighting = EditorGUILayout.BeginToggleGroup("Ambient Light Modifications", myTarget.ambientLighting); myTarget.ambientLightingMod = EditorGUILayout.ColorField("Ambient Sky Lighting Mod", myTarget.ambientLightingMod); if (EnviroSkyMgr.instance != null && EnviroSkyMgr.instance.IsAvailable()) { if (EnviroSkyMgr.instance.LightSettings.ambientMode == UnityEngine.Rendering.AmbientMode.Trilight) { myTarget.ambientEQLightingMod = EditorGUILayout.ColorField("Ambient Equator Lighting Mod", myTarget.ambientEQLightingMod); myTarget.ambientGRLightingMod = EditorGUILayout.ColorField("Ambient Ground Lighting Mod", myTarget.ambientGRLightingMod); } } else { myTarget.ambientEQLightingMod = EditorGUILayout.ColorField("Ambient Equator Lighting Mod", myTarget.ambientEQLightingMod); myTarget.ambientGRLightingMod = EditorGUILayout.ColorField("Ambient Ground Lighting Mod", myTarget.ambientGRLightingMod); } myTarget.ambientLightFadeSpeed = EditorGUILayout.Slider("Ambient Fading Speed", myTarget.ambientLightFadeSpeed, 0.01f, 100f); EditorGUILayout.EndToggleGroup(); GUILayout.EndVertical(); GUILayout.BeginVertical("Skybox", boxStyle); GUILayout.Space(20); myTarget.skybox = EditorGUILayout.BeginToggleGroup("Skybox Modifications", myTarget.skybox); myTarget.skyboxColorMod = EditorGUILayout.ColorField("Skybox Color Mod", myTarget.skyboxColorMod); myTarget.skyboxFadeSpeed = EditorGUILayout.Slider("Skybox Fading Speed", myTarget.skyboxFadeSpeed, 0.01f, 100f); EditorGUILayout.EndToggleGroup(); GUILayout.EndVertical(); GUILayout.BeginVertical("Audio", boxStyle); GUILayout.Space(20); myTarget.ambientAudio = EditorGUILayout.BeginToggleGroup("Ambient Audio Modifications", myTarget.ambientAudio); myTarget.ambientVolume = EditorGUILayout.Slider("Ambient Audio Mod", myTarget.ambientVolume, -1f, 0f); EditorGUILayout.EndToggleGroup(); myTarget.weatherAudio = EditorGUILayout.BeginToggleGroup("Weather Audio Modifications", myTarget.weatherAudio); myTarget.weatherVolume = EditorGUILayout.Slider("Weather Audio Mod", myTarget.weatherVolume, -1f, 0f); EditorGUILayout.EndToggleGroup(); GUILayout.Space(20); GUILayout.Label("Zone Audio", headerStyle); myTarget.zoneAudioClip = (AudioClip)EditorGUILayout.ObjectField("Zone Ambient Clip", myTarget.zoneAudioClip, typeof(AudioClip), false); myTarget.zoneAudioVolume = EditorGUILayout.Slider("Zone Ambient Volume", myTarget.zoneAudioVolume, 0f, 1f); myTarget.zoneAudioFadingSpeed = EditorGUILayout.Slider("Zone Ambient Fading Speed", myTarget.zoneAudioFadingSpeed, 0.01f, 100f); GUILayout.EndVertical(); GUILayout.BeginVertical("Fog", boxStyle); GUILayout.Space(20); myTarget.fogFadeSpeed = EditorGUILayout.Slider("Fog Fading Speed", myTarget.fogFadeSpeed, 0.01f, 100f); myTarget.fog = EditorGUILayout.BeginToggleGroup("Fog Intensity Modifications", myTarget.fog); myTarget.minFogMod = EditorGUILayout.Slider("Fog Min Value", myTarget.minFogMod, 0f, 1f); EditorGUILayout.EndToggleGroup(); myTarget.fogColor = EditorGUILayout.BeginToggleGroup("Fog Color Modifications", myTarget.fogColor); myTarget.fogColorMod = EditorGUILayout.ColorField("Fog Color Mod", myTarget.fogColorMod); EditorGUILayout.EndToggleGroup(); GUILayout.EndVertical(); GUILayout.BeginVertical("Weather Effects", boxStyle); GUILayout.Space(20); myTarget.weatherEffects = EditorGUILayout.BeginToggleGroup("Weather Effects Modifications", myTarget.weatherEffects); myTarget.weatherFadeSpeed = EditorGUILayout.Slider("Weather Effects Fading Speed", myTarget.weatherFadeSpeed, 0.01f, 100f); EditorGUILayout.EndToggleGroup(); GUILayout.EndVertical(); if (EditorGUI.EndChangeCheck()) { EditorUtility.SetDirty(target); } }
void OnEnable() { myTarget = (EnviroInterior)target; }