private void OnGUI() { if (!fogSettings) { return; } if (fogSettingsNotFoundOnDisk && !String.IsNullOrEmpty(currentScene.path)) { DrawCreateFogSettingsAssetButton(); } EditorGUILayout.LabelField(headerContent, EditorStyles.boldLabel, GUILayout.Height(20)); EditorGUI.BeginChangeCheck(); { isEnabled = EditorGUILayout.Toggle(isEnabledText, fogSettings.isEnabled); EditorGUI.BeginChangeCheck(); { colorMode = (EnhancedFogColorMode)EditorGUILayout.EnumPopup(colorModeText, fogSettings.colorMode); } if (EditorGUI.EndChangeCheck()) { gradientTexture = GenerateGradientTexture(gradient, gradientTextureWidth); } if (fogSettings.colorMode == EnhancedFogColorMode.SingleColor) { color = EditorGUILayout.ColorField(colorText, fogSettings.color); } else { EditorGUI.BeginChangeCheck(); { gradient = EditorGUILayout.GradientField(gradientText, fogSettings.gradient); } if (EditorGUI.EndChangeCheck()) { gradientTexture = GenerateGradientTexture(gradient, gradientTextureWidth); } } mode = (EnhancedFogMode)EditorGUILayout.EnumPopup(modeText, fogSettings.mode); if (fogSettings.mode == EnhancedFogMode.Linear) { startDistance = EditorGUILayout.FloatField(startDistanceText, fogSettings.startDistance); endDistance = EditorGUILayout.FloatField(endDistanceText, fogSettings.endDistance); } else { density = EditorGUILayout.FloatField(densityText, fogSettings.density); } } if (EditorGUI.EndChangeCheck()) { ApplyWindowSettingsToFogSettings(fogSettings); } }
private void Initialize(Scene scene) { fogSettings = EnhancedFogLoader.GetFogSettings(scene); currentScene = scene; if (!fogSettings) { fogSettingsNotFoundOnDisk = true; fogSettings = ScriptableObject.CreateInstance(typeof(EnhancedFogSettings)) as EnhancedFogSettings; fogSettings.isEnabled = EnhancedFog.isEnabled; fogSettings.colorMode = EnhancedFog.colorMode; fogSettings.color = EnhancedFog.color; fogSettings.gradient = EnhancedFog.gradient; fogSettings.gradientTexture = EnhancedFog.gradientTexture; fogSettings.mode = EnhancedFog.mode; fogSettings.startDistance = EnhancedFog.startDistance; fogSettings.endDistance = EnhancedFog.endDistance; fogSettings.density = EnhancedFog.density; } else { fogSettingsNotFoundOnDisk = false; } isEnabled = fogSettings.isEnabled; colorMode = fogSettings.colorMode; color = fogSettings.color; gradient = fogSettings.gradient; gradientTexture = fogSettings.gradientTexture; mode = fogSettings.mode; startDistance = fogSettings.startDistance; endDistance = fogSettings.endDistance; density = fogSettings.density; unityLogo = EditorGUIUtility.IconContent("BuildSettings.Editor.Small").image; string headerText = string.Join(blankspace, blankspace + scene.name, fogSettingsText); headerContent = new GUIContent(headerText, unityLogo, ""); }