using System.Collections.Generic; namespace UnityEngine.Rendering { /// /// Defines the basic structure for a Volume, providing the necessary properties for determining /// whether the volume should be applied globally to the scene or to specific colliders. /// /// /// This interface serves as a contract for systems that implement volume logic, enabling /// reusable code for volume-based behaviors such as rendering effects, post-processing, or scene-specific logic. /// The interface is commonly implemented by components that define volumes in a scene, /// allowing for flexibility in determining how the volume interacts with the scene. A volume can either be global /// (affecting the entire scene) or local (restricted to specific colliders). /// This interface is also helpful for drawing gizmos in the scene view, as it allows for visual representation /// of volumes in the editor based on their settings. /// public interface IVolume { /// /// Gets or sets a value indicating whether the volume applies to the entire scene. /// If true, the volume is global and affects all objects within the scene. /// If false, the volume is local and only affects the objects within the specified colliders. /// /// /// When set to true, the volume's effects will be applied universally across the scene, /// without considering individual colliders. When false, the volume will interact only with /// the objects inside the colliders defined in . /// bool isGlobal { get; set; } /// /// A list of colliders that define the area of influence of the volume when is set to false. /// /// /// This property holds the colliders that restrict the volume's effects to specific areas of the scene. /// It is only relevant when is false, and defines the boundaries of where the volume is applied. /// List colliders { get; } } }