using System; using UnityEngine; using UnityEngine.Rendering; using UnityEngine.Rendering.Universal; [Serializable] [VolumeComponentMenu("Post-processing/Bansonic/Global Glitch")] [SupportedOnRenderPipeline(typeof(UniversalRenderPipelineAsset))] public sealed class GlobalGlitchVolume : VolumeComponent, IPostProcessComponent { [Tooltip("Base glitch intensity from the volume profile.")] public ClampedFloatParameter intensity = new ClampedFloatParameter(0f, 0f, 1f); [Tooltip("How strong the horizontal block tearing is.")] public ClampedFloatParameter blockStrength = new ClampedFloatParameter(0.45f, 0f, 1f); [Tooltip("How much the RGB channels split apart.")] public ClampedFloatParameter colorSplit = new ClampedFloatParameter(0.01f, 0f, 0.05f); [Tooltip("Per-line horizontal jitter amount.")] public ClampedFloatParameter jitterAmount = new ClampedFloatParameter(0.4f, 0f, 1f); [Tooltip("How many horizontal strips are used to drive the glitch pattern.")] public ClampedFloatParameter stripFrequency = new ClampedFloatParameter(48f, 1f, 240f); [Tooltip("Dark scanline contribution.")] public ClampedFloatParameter scanlineStrength = new ClampedFloatParameter(0.18f, 0f, 1f); [Tooltip("Whether this effect should run in SceneView cameras.")] public BoolParameter affectSceneView = new BoolParameter(false); public bool IsActive() => intensity.value > 0.0001f; [Obsolete("Unused #from(2023.1)", false)] public bool IsTileCompatible() => false; }