public override void OnInspectorGUI()
        {
            ScalableBlurConfig config = (ScalableBlurConfig)target;

            DrawTabView(config);
            Undo.RecordObject(target, "Modify Blur Config");
        }
        public void Draw(ScalableBlurConfig config)
        {
            Undo.RecordObject(target, "Modify Blur Config");

            using (var v = new EditorGUILayout.VerticalScope())
            {
                EditorGUILayout.Space();
                DrawTabBar();
                EditorGUILayout.Space();

                using (var changes = new EditorGUI.ChangeCheckScope())
                {
                    DrawTabsContent(config);
                    EditorGUILayout.Space();

                    config.MaxDepth = EditorGUILayout.IntField(depthLabel, config.MaxDepth);
                    EditorGUILayout.Space();

                    if (changes.changed)
                    {
                        EditorUtility.SetDirty(target);
                    }
                }
            }
        }
        void DrawTabsContent(ScalableBlurConfig config)
        {
            //Simple tab
            if (EditorGUILayout.BeginFadeGroup(1 - useAdvancedControl.faded))
            {
                config.Strength = Mathf.Max(0, EditorGUILayout.FloatField("Strength", config.Strength));
            }

            EditorGUILayout.EndFadeGroup();

            //Advanced tab
            if (EditorGUILayout.BeginFadeGroup(useAdvancedControl.faded))
            {
                config.Radius = EditorGUILayout.FloatField(radiusLabel, config.Radius);

                config.Iteration = EditorGUILayout.IntSlider(
                    iterationLabel,
                    config.Iteration,
                    Min,
                    MaxIteration
                    );
            }

            EditorGUILayout.EndFadeGroup();
        }
Beispiel #4
0
        public override void OnInspectorGUI()
        {
            Undo.RecordObject(target, "Change Translucent Image Source property");
            PrefabUtility.RecordPrefabInstancePropertyModifications(target);

            var tiSource = (TranslucentImageSource)target;

            using (var v = new EditorGUILayout.VerticalScope())
            {
                EditorGUILayout.Space();
                GUI.Box(v.rect, GUIContent.none);
                tiSource.BlurConfig = (BlurConfig)EditorGUILayout.ObjectField("Config file",
                                                                              tiSource.BlurConfig,
                                                                              typeof(BlurConfig),
                                                                              false);

                if (tiSource.BlurConfig == null)
                {
                    EditorGUILayout.HelpBox("Missing Blur Config", MessageType.Warning);
                    if (GUILayout.Button("New Blur Config File"))
                    {
                        ScalableBlurConfig config = CreateInstance <ScalableBlurConfig>();

                        var path = AssetDatabase.GenerateUniqueAssetPath(
                            $"Assets/{SceneManager.GetActiveScene().name} {tiSource.gameObject.name} Blur Config.asset");
                        AssetDatabase.CreateAsset(config, path);
                        AssetDatabase.SaveAssets();
                        AssetDatabase.Refresh();
                        EditorGUIUtility.PingObject(config);
                        tiSource.BlurConfig = config;
                    }
                }
                else
                {
                    // EditorGUILayout.LabelField("Blur settings", EditorStyles.centeredGreyMiniLabel);
                    ConfigEditor.Draw((ScalableBlurConfig)tiSource.BlurConfig);
                }
            }

            EditorGUILayout.Space();

            // Common properties
            tiSource.Downsample    = EditorGUILayout.IntSlider(downsampleLabel, tiSource.Downsample, 0, 3);
            tiSource.BlurRegion    = EditorGUILayout.RectField(regionLabel, tiSource.BlurRegion);
            tiSource.maxUpdateRate = EditorGUILayout.FloatField(updateRateLabel, tiSource.maxUpdateRate);
            tiSource.preview       = EditorGUILayout.Toggle(previewLabel, tiSource.preview);

            if (GUI.changed)
            {
                EditorUtility.SetDirty(target);
            }
        }
        private ShadowFactory()
        {
            cmd = new CommandBuffer {
                name = "Shadow Commands"
            };
            materialProps = new MaterialPropertyBlock();
            materialProps.SetVector(ShaderId.CLIP_RECT,
                                    new Vector4(float.NegativeInfinity, float.NegativeInfinity,
                                                float.PositiveInfinity, float.PositiveInfinity));
            materialProps.SetInt(ShaderId.COLOR_MASK, (int)ColorWriteMask.All); // Render shadow even if mask hide graphic

            ShaderProperties.Init(8);
            blurConfig           = ScriptableObject.CreateInstance <ScalableBlurConfig>();
            blurConfig.hideFlags = HideFlags.HideAndDontSave;
            blurProcessor        = new ScalableBlur();
            blurProcessor.Configure(blurConfig);
        }
        public override void OnInspectorGUI()
        {
            var tiSource = (TranslucentImageSource)target;

            tiSource.BlurConfig = (BlurConfig)EditorGUILayout.ObjectField("Config file",
                                                                          tiSource.BlurConfig,
                                                                          typeof(BlurConfig),
                                                                          false);

            if (tiSource.BlurConfig == null)
            {
                EditorGUILayout.HelpBox("Assign a Blur configuration asset, or create a new one", MessageType.Warning);
                if (GUILayout.Button("Create New Configuration File"))
                {
                    ScalableBlurConfig config = CreateInstance <ScalableBlurConfig>();

                    string path =
                        AssetDatabase.GenerateUniqueAssetPath("Assets/" +
                                                              SceneManager.GetActiveScene().name +
                                                              " Blur Config.asset");
                    AssetDatabase.CreateAsset(config, path);
                    AssetDatabase.SaveAssets();
                    AssetDatabase.Refresh();
                    EditorGUIUtility.PingObject(config);
                    tiSource.BlurConfig = config;
                }
            }
            else
            {
                ConfigEditor.OnInspectorGUI();
            }

            EditorGUILayout.Space();

            //Common properties
            tiSource.Downsample = EditorGUILayout.IntSlider(new GUIContent(downsampleLabel),
                                                            tiSource.Downsample,
                                                            Min,
                                                            MaxDownsample);
            tiSource.BlurRegion    = EditorGUILayout.RectField(regionLabel, tiSource.BlurRegion);
            tiSource.maxUpdateRate = EditorGUILayout.FloatField(updateRateLabel, tiSource.maxUpdateRate);
            tiSource.preview       = EditorGUILayout.Toggle(previewLabel, tiSource.preview);

            EditorUtility.SetDirty(target);
            Undo.RecordObject(target, "Change Translucent Image Source property");
        }
        void DrawTabView(ScalableBlurConfig config)
        {
            EditorGUILayout.Space();

            using (var v = new EditorGUILayout.VerticalScope())
            {
                GUI.Box(v.rect, GUIContent.none);
                EditorGUILayout.LabelField("Blur settings", EditorStyles.centeredGreyMiniLabel);

                DrawTabBar();
                EditorGUILayout.Space();

                DrawTabsContent(config);
                EditorGUILayout.Space();

                config.MaxDepth = EditorGUILayout.IntField(depthLabel, config.MaxDepth);
                EditorGUILayout.Space();
            }
        }
        public override void OnInspectorGUI()
        {
            ScalableBlurConfig config = (ScalableBlurConfig)target;

            Draw(config);
        }