/// <summary>
            /// Inspector.
            /// </summary>
            protected override void Inspector()
            {
                VideoGlitchOldTape thisTarget = (VideoGlitchOldTape)target;

                thisTarget.Speed = EditorHelper.Slider("Speed", @"Noise speed [0.0 - 1.0]. Default 0.25.", thisTarget.Speed, 0.0f, 1.0f, 0.25f);

                thisTarget.Amplitude = EditorHelper.Slider("Amplitude", @"Noise amplitude [1.0 - 100.0]. Default 1.", thisTarget.Amplitude, 1.0f, 100.0f, 1.0f);
            }
        private void DrawCustomControls(ImageEffectBase imageEffect)
        {
            System.Type type = imageEffect.GetType();

            if (type == typeof(VideoGlitchShift))
            {
                VideoGlitchShift effect = imageEffect as VideoGlitchShift;
                if (effect != null)
                {
                    GUILayout.BeginHorizontal();
                    {
                        GUILayout.Label("Amplitude", GUILayout.Width(60));
                        effect.amplitude = GUILayout.HorizontalSlider(effect.amplitude, 0.0f, 1.0f);
                    }
                    GUILayout.EndHorizontal();

                    GUILayout.BeginHorizontal();
                    {
                        GUILayout.Label("Speed", GUILayout.Width(60));
                        effect.speed = GUILayout.HorizontalSlider(effect.speed, 0.0f, 0.2f);
                    }
                    GUILayout.EndHorizontal();
                }
            }
            else if (type == typeof(VideoGlitchNoiseDigital))
            {
                VideoGlitchNoiseDigital effect = imageEffect as VideoGlitchNoiseDigital;
                if (effect != null)
                {
                    GUILayout.BeginHorizontal();
                    {
                        GUILayout.Label("Threshold", GUILayout.Width(60));
                        effect.threshold = GUILayout.HorizontalSlider(effect.threshold, 0.0f, 1.0f);
                    }
                    GUILayout.EndHorizontal();

                    GUILayout.BeginHorizontal();
                    {
                        GUILayout.Label("Max offset", GUILayout.Width(60));
                        effect.maxOffset = GUILayout.HorizontalSlider(effect.maxOffset, 0.0f, 1.0f);
                    }
                    GUILayout.EndHorizontal();

                    GUILayout.BeginHorizontal();
                    {
                        GUILayout.Label("Threshold YUV", GUILayout.Width(60));
                        effect.thresholdYUV = GUILayout.HorizontalSlider(effect.thresholdYUV, 0.0f, 1.0f);
                    }
                    GUILayout.EndHorizontal();
                }
            }
            else if (type == typeof(VideoGlitchBlackWhiteDistortion))
            {
                VideoGlitchBlackWhiteDistortion effect = imageEffect as VideoGlitchBlackWhiteDistortion;
                if (effect != null)
                {
                    GUILayout.BeginHorizontal();
                    {
                        GUILayout.Label("Steps", GUILayout.Width(60));
                        effect.distortionSteps = GUILayout.HorizontalSlider(effect.distortionSteps, 1.0f, 10.0f);
                    }
                    GUILayout.EndHorizontal();

                    GUILayout.BeginHorizontal();
                    {
                        GUILayout.Label("Speed", GUILayout.Width(60));
                        effect.distortionSpeed = GUILayout.HorizontalSlider(effect.distortionSpeed, 0.0f, 10.0f);
                    }
                    GUILayout.EndHorizontal();
                }
            }
            else if (type == typeof(VideoGlitchBrokenScreen))
            {
                VideoGlitchBrokenScreen effect = imageEffect as VideoGlitchBrokenScreen;
                if (effect != null)
                {
                    GUILayout.BeginHorizontal();
                    {
                        GUILayout.Label("Splits", GUILayout.Width(60));
                        effect.splits = (int)GUILayout.HorizontalSlider(effect.splits, 2.0f, 100.0f);
                    }
                    GUILayout.EndHorizontal();

                    GUILayout.BeginHorizontal();
                    {
                        GUILayout.Label("Threshold", GUILayout.Width(60));
                        effect.splitThreshold = GUILayout.HorizontalSlider(effect.splitThreshold, 0.0f, 1.0f);
                    }
                    GUILayout.EndHorizontal();

                    GUILayout.BeginHorizontal();
                    {
                        GUILayout.Label("Distortion", GUILayout.Width(60));
                        effect.distortion = GUILayout.HorizontalSlider(effect.distortion, 0.0f, 1.0f);
                    }
                    GUILayout.EndHorizontal();
                }
            }
            else if (type == typeof(VideoGlitchRGBDisplay))
            {
                VideoGlitchRGBDisplay effect = imageEffect as VideoGlitchRGBDisplay;
                if (effect != null)
                {
                    GUILayout.BeginHorizontal();
                    {
                        GUILayout.Label("Cell size", GUILayout.Width(60));
                        effect.cellSize = (int)GUILayout.HorizontalSlider(effect.cellSize, 1.0f, 10.0f);
                    }
                    GUILayout.EndHorizontal();
                }
            }
            else if (type == typeof(VideoGlitchSpectrumOffset))
            {
                VideoGlitchSpectrumOffset effect = imageEffect as VideoGlitchSpectrumOffset;
                if (effect != null)
                {
                    GUILayout.BeginHorizontal();
                    {
                        GUILayout.Label("Strength", GUILayout.Width(60));
                        effect.strength = GUILayout.HorizontalSlider(effect.strength, 0.0f, 1.0f);
                    }
                    GUILayout.EndHorizontal();

                    GUILayout.BeginHorizontal();
                    {
                        GUILayout.Label("Steps", GUILayout.Width(60));
                        effect.steps = (int)GUILayout.HorizontalSlider(effect.steps, 3.0f, 10.0f);
                    }
                    GUILayout.EndHorizontal();
                }
            }
            else if (type == typeof(VideoGlitchOldTape))
            {
                VideoGlitchOldTape effect = imageEffect as VideoGlitchOldTape;
                if (effect != null)
                {
                    GUILayout.BeginHorizontal();
                    {
                        GUILayout.Label("Speed", GUILayout.Width(60));
                        effect.noiseSpeed = GUILayout.HorizontalSlider(effect.noiseSpeed, 1.0f, 100.0f);
                    }
                    GUILayout.EndHorizontal();

                    GUILayout.BeginHorizontal();
                    {
                        GUILayout.Label("Amplitude", GUILayout.Width(60));
                        effect.noiseAmplitude = (int)GUILayout.HorizontalSlider(effect.noiseAmplitude, 1.0f, 100.0f);
                    }
                    GUILayout.EndHorizontal();
                }
            }
            else if (type == typeof(VideoGlitchVHSPause))
            {
                VideoGlitchVHSPause effect = imageEffect as VideoGlitchVHSPause;
                if (effect != null)
                {
                    GUILayout.BeginHorizontal();
                    {
                        GUILayout.Label("Strength", GUILayout.Width(60));
                        effect.strength = GUILayout.HorizontalSlider(effect.strength, 0.0f, 1.0f);
                    }
                    GUILayout.EndHorizontal();

                    GUILayout.BeginHorizontal();
                    {
                        GUILayout.Label("Color noise", GUILayout.Width(80));
                        effect.colorNoise = GUILayout.HorizontalSlider(effect.colorNoise, 0.0f, 1.0f);
                    }
                    GUILayout.EndHorizontal();
                }
            }
            else if (type == typeof(VideoGlitchOldTV))
            {
                VideoGlitchOldTV effect = imageEffect as VideoGlitchOldTV;
                if (effect != null)
                {
                    GUILayout.BeginHorizontal();
                    {
                        GUILayout.Label("SlowScan", GUILayout.Width(60));
                        effect.slowScan = GUILayout.HorizontalSlider(effect.slowScan, 0.0f, 1.0f);
                    }
                    GUILayout.EndHorizontal();

                    GUILayout.BeginHorizontal();
                    {
                        GUILayout.Label("ScanLine", GUILayout.Width(60));
                        effect.scanLine = GUILayout.HorizontalSlider(effect.scanLine, 0.0f, 2.0f);
                    }
                    GUILayout.EndHorizontal();

                    GUILayout.BeginHorizontal();
                    {
                        GUILayout.Label("Vignette softness", GUILayout.Width(60));
                        effect.vignetteSoftness = GUILayout.HorizontalSlider(effect.vignetteSoftness, 0.0f, 1.0f);
                    }
                    GUILayout.EndHorizontal();

                    GUILayout.BeginHorizontal();
                    {
                        GUILayout.Label("Vignette scale", GUILayout.Width(60));
                        effect.vignetteScale = GUILayout.HorizontalSlider(effect.vignetteScale, 0.0f, 1.0f);
                    }
                    GUILayout.EndHorizontal();

                    GUILayout.BeginHorizontal();
                    {
                        GUILayout.Label("Grain opacity", GUILayout.Width(60));
                        effect.grainOpacity = GUILayout.HorizontalSlider(effect.grainOpacity, 0.0f, 100.0f);
                    }
                    GUILayout.EndHorizontal();

                    GUILayout.BeginHorizontal();
                    {
                        GUILayout.Label("Grain saturation", GUILayout.Width(60));
                        effect.grainSaturation = GUILayout.HorizontalSlider(effect.grainSaturation, 0.0f, 1.0f);
                    }
                    GUILayout.EndHorizontal();

                    GUILayout.BeginHorizontal();
                    {
                        GUILayout.Label("Scan distort", GUILayout.Width(60));
                        effect.scanDistort = GUILayout.HorizontalSlider(effect.scanDistort, 0.0f, 10.0f);
                    }
                    GUILayout.EndHorizontal();

                    GUILayout.BeginHorizontal();
                    {
                        GUILayout.Label("Timer", GUILayout.Width(60));
                        effect.timer = GUILayout.HorizontalSlider(effect.timer, 0.0f, 5.0f);
                    }
                    GUILayout.EndHorizontal();

                    GUILayout.BeginHorizontal();
                    {
                        GUILayout.Label("Speed", GUILayout.Width(60));
                        effect.speed = GUILayout.HorizontalSlider(effect.speed, 1.0f, 5.0f);
                    }
                    GUILayout.EndHorizontal();

                    GUILayout.BeginHorizontal();
                    {
                        GUILayout.Label("CRT scale", GUILayout.Width(60));
                        effect.crtScale = GUILayout.HorizontalSlider(effect.crtScale, 1.0f, 10.0f);
                    }
                    GUILayout.EndHorizontal();

                    GUILayout.BeginHorizontal();
                    {
                        GUILayout.Label("Stripes count", GUILayout.Width(60));
                        effect.stripesCount = GUILayout.HorizontalSlider(effect.stripesCount, 0.0f, 1000.0f);
                    }
                    GUILayout.EndHorizontal();

                    GUILayout.BeginHorizontal();
                    {
                        GUILayout.Label("Stripes opacity", GUILayout.Width(60));
                        effect.stripesOpacity = GUILayout.HorizontalSlider(effect.stripesOpacity, 0.0f, 10.0f);
                    }
                    GUILayout.EndHorizontal();

                    GUILayout.BeginHorizontal();
                    {
                        GUILayout.Label("Bars count", GUILayout.Width(60));
                        effect.barsCount = GUILayout.HorizontalSlider(effect.barsCount, 0.0f, 1000.0f);
                    }
                    GUILayout.EndHorizontal();

                    GUILayout.BeginHorizontal();
                    {
                        GUILayout.Label("Moire opacity", GUILayout.Width(60));
                        effect.moireOpacity = GUILayout.HorizontalSlider(effect.moireOpacity, 0.0f, 100.0f);
                    }
                    GUILayout.EndHorizontal();

                    GUILayout.BeginHorizontal();
                    {
                        GUILayout.Label("Moire scale", GUILayout.Width(60));
                        effect.moireScale = GUILayout.HorizontalSlider(effect.moireScale, 0.01f, 100.0f);
                    }
                    GUILayout.EndHorizontal();

                    GUILayout.BeginHorizontal();
                    {
                        GUILayout.Label("TV lines", GUILayout.Width(60));
                        effect.tvLines = GUILayout.HorizontalSlider(effect.tvLines, 0.01f, 10.0f);
                    }
                    GUILayout.EndHorizontal();

                    GUILayout.BeginHorizontal();
                    {
                        GUILayout.Label("TV lines opacity", GUILayout.Width(60));
                        effect.tvLinesOpacity = GUILayout.HorizontalSlider(effect.tvLinesOpacity, 0.0f, 10.0f);
                    }
                    GUILayout.EndHorizontal();

                    GUILayout.BeginHorizontal();
                    {
                        GUILayout.Label("Vignette tube scale", GUILayout.Width(60));
                        effect.vignetteTubeScale = GUILayout.HorizontalSlider(effect.vignetteTubeScale, 0.01f, 10.0f);
                    }
                    GUILayout.EndHorizontal();

                    GUILayout.BeginHorizontal();
                    {
                        GUILayout.Label("TV dots", GUILayout.Width(60));
                        effect.tvDots = GUILayout.HorizontalSlider(effect.tvDots, 0.0f, 4.0f);
                    }
                    GUILayout.EndHorizontal();

                    GUILayout.BeginHorizontal();
                    {
                        GUILayout.Label("TV dots blend", GUILayout.Width(60));
                        effect.tvDotsBlend = GUILayout.HorizontalSlider(effect.tvDotsBlend, 0.0f, 1000.0f);
                    }
                    GUILayout.EndHorizontal();
                }
            }
            else if (type == typeof(VideoGlitchCorruptionDigital))
            {
                VideoGlitchCorruptionDigital effect = imageEffect as VideoGlitchCorruptionDigital;
                if (effect != null)
                {
                    GUILayout.BeginHorizontal();
                    {
                        GUILayout.Label("Strength", GUILayout.Width(60));
                        effect.strength = GUILayout.HorizontalSlider(effect.strength, 0.0f, 1.0f);
                    }
                    GUILayout.EndHorizontal();

                    GUILayout.BeginHorizontal();
                    {
                        GUILayout.Label("Tile size", GUILayout.Width(60));
                        effect.tileSize = (int)GUILayout.HorizontalSlider(effect.tileSize, 1.0f, 128.0f);
                    }
                    GUILayout.EndHorizontal();
                }
            }
        }