Пример #1
0
    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);
        }
    }
Пример #2
0
    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, "");
    }