docs.unity3d.com
Search Results for

    Show / Hide Table of Contents

    Class VolumeComponentEditor

    A custom editor class that draws a VolumeComponent in the Inspector. If you do not provide a custom editor for a VolumeComponent, Unity uses the default one. You must use a VolumeComponentEditorAttribute to let the editor know which component this drawer is for.

    Inheritance
    object
    VolumeComponentEditor
    Inherited Members
    object.Equals(object)
    object.Equals(object, object)
    object.GetHashCode()
    object.GetType()
    object.MemberwiseClone()
    object.ReferenceEquals(object, object)
    object.ToString()
    Namespace: UnityEditor.Rendering
    Assembly: Unity.RenderPipelines.Core.Editor.dll
    Syntax
    public class VolumeComponentEditor
    Examples

    Below is an example of a custom VolumeComponent:

    using UnityEngine.Rendering;
    
    [Serializable, VolumeComponentMenu("Custom/Example Component")]
    public class ExampleComponent : VolumeComponent
    {
        public ClampedFloatParameter intensity = new ClampedFloatParameter(0f, 0f, 1f);
    }

    And its associated editor:

    using UnityEditor.Rendering;
    
    [VolumeComponentEditor(typeof(ExampleComponent))]
    class ExampleComponentEditor : VolumeComponentEditor
    {
        SerializedDataParameter m_Intensity;
    
        public override void OnEnable()
        {
            var o = new PropertyFetcher<ExampleComponent>(serializedObject);
            m_Intensity = Unpack(o.Find(x => x.intensity));
        }
    
        public override void OnInspectorGUI()
        {
            PropertyField(m_Intensity);
        }
    }

    Fields

    m_Inspector

    A reference to the parent editor in the Inspector.

    Declaration
    protected Editor m_Inspector
    Field Value
    Type Description
    Editor
    See Also
    VolumeComponentEditorAttribute

    Properties

    activeProperty

    The serialized property of active for the component being inspected.

    Declaration
    public SerializedProperty activeProperty { get; }
    Property Value
    Type Description
    SerializedProperty
    See Also
    VolumeComponentEditorAttribute

    baseProperty

    The copy of the serialized property of the VolumeComponent being inspected. Unity uses this to track whether the editor is collapsed in the Inspector or not.

    Declaration
    public SerializedProperty baseProperty { get; }
    Property Value
    Type Description
    SerializedProperty
    See Also
    VolumeComponentEditorAttribute

    hasAdditionalProperties

    Override this property if your editor makes use of the "Additional Properties" feature.

    Declaration
    public virtual bool hasAdditionalProperties { get; }
    Property Value
    Type Description
    bool
    See Also
    VolumeComponentEditorAttribute

    serializedObject

    A SerializedObject representing the object being inspected.

    Declaration
    public SerializedObject serializedObject { get; }
    Property Value
    Type Description
    SerializedObject
    See Also
    VolumeComponentEditorAttribute

    showAdditionalProperties

    Set to true to show additional properties.

    Declaration
    public bool showAdditionalProperties { get; set; }
    Property Value
    Type Description
    bool
    See Also
    VolumeComponentEditorAttribute

    target

    Specifies the VolumeComponent this editor is drawing.

    Declaration
    public VolumeComponent target { get; }
    Property Value
    Type Description
    VolumeComponent
    See Also
    VolumeComponentEditorAttribute

    Methods

    BeginAdditionalPropertiesScope()

    Start a scope for additional properties. This will handle the highlight of the background when toggled on and off.

    Declaration
    protected bool BeginAdditionalPropertiesScope()
    Returns
    Type Description
    bool

    True if the additional content should be drawn.

    See Also
    VolumeComponentEditorAttribute

    DrawHeader(string)

    Draws a header into the inspector with the given title

    Declaration
    protected void DrawHeader(string header)
    Parameters
    Type Name Description
    string header

    The title for the header

    See Also
    VolumeComponentEditorAttribute

    DrawOverrideCheckbox(SerializedDataParameter)

    Draws the override checkbox used by a property in the editor.

    Declaration
    protected void DrawOverrideCheckbox(SerializedDataParameter property)
    Parameters
    Type Name Description
    SerializedDataParameter property

    The property to draw the override checkbox for

    See Also
    VolumeComponentEditorAttribute

    EndAdditionalPropertiesScope()

    End a scope for additional properties.

    Declaration
    protected void EndAdditionalPropertiesScope()
    See Also
    VolumeComponentEditorAttribute

    GetDisplayTitle()

    Sets the label for the component header. Override this method to provide a custom label. If you don't, Unity automatically obtains one from the class name.

    Declaration
    public virtual GUIContent GetDisplayTitle()
    Returns
    Type Description
    GUIContent

    A label to display in the component header.

    See Also
    VolumeComponentEditorAttribute

    OnDisable()

    Unity calls this method when the object goes out of scope.

    Declaration
    public virtual void OnDisable()
    See Also
    VolumeComponentEditorAttribute

    OnEnable()

    Unity calls this method when the object loads.

    Declaration
    public virtual void OnEnable()
    Remarks

    You can safely override this method and not call base.OnEnable() unless you want Unity to display all the properties from the VolumeComponent automatically.

    See Also
    VolumeComponentEditorAttribute

    OnInspectorGUI()

    Unity calls this method each time it re-draws the Inspector.

    Declaration
    public virtual void OnInspectorGUI()
    Remarks

    You can safely override this method and not call base.OnInspectorGUI() unless you want Unity to display all the properties from the VolumeComponent automatically.

    See Also
    VolumeComponentEditorAttribute

    PropertyField(SerializedDataParameter)

    Draws a given SerializedDataParameter in the editor.

    Declaration
    protected bool PropertyField(SerializedDataParameter property)
    Parameters
    Type Name Description
    SerializedDataParameter property

    The property to draw in the editor

    Returns
    Type Description
    bool

    true if the property field has been rendered

    See Also
    VolumeComponentEditorAttribute

    PropertyField(SerializedDataParameter, GUIContent)

    Draws a given SerializedDataParameter in the editor using a custom label and tooltip.

    Declaration
    protected bool PropertyField(SerializedDataParameter property, GUIContent title)
    Parameters
    Type Name Description
    SerializedDataParameter property

    The property to draw in the editor.

    GUIContent title

    A custom label and/or tooltip.

    Returns
    Type Description
    bool

    true if the property field has been rendered

    See Also
    VolumeComponentEditorAttribute

    Repaint()

    Triggers an Inspector repaint event.

    Declaration
    public void Repaint()
    See Also
    VolumeComponentEditorAttribute

    Unpack(SerializedProperty)

    Generates and auto-populates a SerializedDataParameter from a serialized VolumeParameter<T>.

    Declaration
    protected SerializedDataParameter Unpack(SerializedProperty property)
    Parameters
    Type Name Description
    SerializedProperty property

    A serialized property holding a VolumeParameter<T>

    Returns
    Type Description
    SerializedDataParameter
    See Also
    VolumeComponentEditorAttribute

    Extension Methods

    ReflectionUtils.GetField(object, string)
    ReflectionUtils.GetFields(object)
    ReflectionUtils.Invoke(object, string, params object[])
    ReflectionUtils.SetField(object, string, object)

    See Also

    VolumeComponentEditorAttribute
    In This Article
    Back to top
    Copyright © 2025 Unity Technologies — Trademarks and terms of use
    • Legal
    • Privacy Policy
    • Cookie Policy
    • Do Not Sell or Share My Personal Information
    • Your Privacy Choices (Cookie Settings)