docs.unity.cn
    Show / Hide Table of Contents

    Class VolumeComponent

    The base class for all the components that can be part of a VolumeProfile. The Volume framework automatically handles and interpolates any VolumeParameter members found in this class.

    Inheritance
    Object
    Object
    ScriptableObject
    VolumeComponent
    ProbeVolumesOptions
    TestVolume
    VolumeComponentCustomRenderPipelineAsset
    VolumeComponentEditorSupportedOnTests.VolumeComponentSupportedEverywhere
    VolumeComponentEditorSupportedOnTests.VolumeComponentSupportedOnAnySRP
    VolumeComponentEditorSupportedOnTests.VolumeComponentSupportedOnCustomSRP
    VolumeComponentEditorTests.VolumeComponentNoAdditionalAttributes
    VolumeComponentNoSupportedOn
    VolumeComponentNotSpecifiedSupportedOn
    Inherited Members
    UnityEngine.ScriptableObject.SetDirty()
    ScriptableObject.CreateInstance(String)
    ScriptableObject.CreateInstance(Type)
    UnityEngine.ScriptableObject.CreateInstance<T>()
    Object.GetInstanceID()
    UnityEngine.Object.Equals(System.Object)
    Object.Instantiate(Object, Vector3, Quaternion)
    Object.Instantiate(Object, Vector3, Quaternion, Transform)
    Object.Instantiate(Object)
    Object.Instantiate(Object, Transform)
    Object.Instantiate(Object, Transform, Boolean)
    UnityEngine.Object.Instantiate<T>(T)
    UnityEngine.Object.Instantiate<T>(T, UnityEngine.Vector3, UnityEngine.Quaternion)
    UnityEngine.Object.Instantiate<T>(T, UnityEngine.Vector3, UnityEngine.Quaternion, UnityEngine.Transform)
    UnityEngine.Object.Instantiate<T>(T, UnityEngine.Transform)
    UnityEngine.Object.Instantiate<T>(T, UnityEngine.Transform, System.Boolean)
    Object.Destroy(Object, Single)
    Object.Destroy(Object)
    Object.DestroyImmediate(Object, Boolean)
    Object.DestroyImmediate(Object)
    Object.FindObjectsOfType(Type)
    Object.FindObjectsOfType(Type, Boolean)
    Object.FindObjectsByType(Type, FindObjectsSortMode)
    Object.FindObjectsByType(Type, FindObjectsInactive, FindObjectsSortMode)
    Object.DontDestroyOnLoad(Object)
    UnityEngine.Object.DestroyObject(UnityEngine.Object, System.Single)
    UnityEngine.Object.DestroyObject(UnityEngine.Object)
    UnityEngine.Object.FindSceneObjectsOfType(System.Type)
    Object.FindObjectsOfTypeIncludingAssets(Type)
    UnityEngine.Object.FindObjectsOfType<T>()
    UnityEngine.Object.FindObjectsByType<T>(UnityEngine.FindObjectsSortMode)
    UnityEngine.Object.FindObjectsOfType<T>(System.Boolean)
    UnityEngine.Object.FindObjectsByType<T>(UnityEngine.FindObjectsInactive, UnityEngine.FindObjectsSortMode)
    UnityEngine.Object.FindObjectOfType<T>()
    UnityEngine.Object.FindObjectOfType<T>(System.Boolean)
    UnityEngine.Object.FindFirstObjectByType<T>()
    UnityEngine.Object.FindAnyObjectByType<T>()
    UnityEngine.Object.FindFirstObjectByType<T>(UnityEngine.FindObjectsInactive)
    UnityEngine.Object.FindAnyObjectByType<T>(UnityEngine.FindObjectsInactive)
    Object.FindObjectsOfTypeAll(Type)
    Object.FindObjectOfType(Type)
    Object.FindFirstObjectByType(Type)
    Object.FindAnyObjectByType(Type)
    Object.FindObjectOfType(Type, Boolean)
    Object.FindFirstObjectByType(Type, FindObjectsInactive)
    Object.FindAnyObjectByType(Type, FindObjectsInactive)
    Object.ToString()
    Object.name
    Object.hideFlags
    Object.Equals(Object, Object)
    Object.ReferenceEquals(Object, Object)
    Object.GetType()
    Object.MemberwiseClone()
    Namespace: UnityEngine.Rendering
    Syntax
    [Serializable]
    public class VolumeComponent : ScriptableObject
    Examples
    using UnityEngine.Rendering;
    
    [Serializable, VolumeComponentMenuForRenderPipeline("Custom/Example Component")]
    public class ExampleComponent : VolumeComponent
    {
        public ClampedFloatParameter intensity = new ClampedFloatParameter(0f, 0f, 1f);
    }

    Fields

    active

    The active state of the set of parameters defined in this class. You can use this to quickly turn on or off all the overrides at once.

    Declaration
    public bool active
    Field Value
    Type Description
    Boolean

    Properties

    displayName

    The name displayed in the component header. If you do not set a name, Unity generates one from the class name automatically.

    Declaration
    public string displayName { get; protected set; }
    Property Value
    Type Description
    String

    parameters

    A read-only collection of all the VolumeParameters defined in this class.

    Declaration
    public ReadOnlyCollection<VolumeParameter> parameters { get; }
    Property Value
    Type Description
    ReadOnlyCollection<VolumeParameter>

    Methods

    AnyPropertiesIsOverridden()

    Returns true if any of the volume properites has been overridden.

    Declaration
    public bool AnyPropertiesIsOverridden()
    Returns
    Type Description
    Boolean

    True if any of the volume properites has been overridden.

    GetHashCode()

    A custom hashing function that Unity uses to compare the state of parameters.

    Declaration
    public override int GetHashCode()
    Returns
    Type Description
    Int32

    A computed hash code for the current instance.

    Overrides
    UnityEngine.Object.GetHashCode()

    OnDestroy()

    Unity calls this method before the object is destroyed.

    Declaration
    protected virtual void OnDestroy()

    OnDisable()

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

    Declaration
    protected virtual void OnDisable()

    OnEnable()

    Unity calls this method when it loads the class.

    Declaration
    protected virtual void OnEnable()
    Remarks

    If you want to override this method, you must call base.OnEnable().

    Override(VolumeComponent, Single)

    Interpolates a VolumeComponent with this component by an interpolation factor and puts the result back into the given VolumeComponent.

    Declaration
    public virtual void Override(VolumeComponent state, float interpFactor)
    Parameters
    Type Name Description
    VolumeComponent state

    The internal component to interpolate from. You must store the result of the interpolation in this same component.

    Single interpFactor

    The interpolation factor in range [0,1].

    Remarks

    You can override this method to do your own blending. Either loop through the parameters list or reference direct fields. You should only use SetValue(VolumeParameter) to set parameter values and not assign directly to the state object. you should also manually check overrideState before you set any values.

    Examples

    Below is the default implementation for blending:

    public virtual void Override(VolumeComponent state, float interpFactor)
    {
        int count = parameters.Count;
    
        for (int i = 0; i < count; i++)
        {
            var stateParam = state.parameters[i];
            var toParam = parameters[i];
    
            if (toParam.overrideState)
            {
                // Keep track of the override state to ensure that state will be reset on next frame (and for debugging purpose)
                stateParam.overrideState = toParam.overrideState;
                stateParam.Interp(stateParam, toParam, interpFactor);
            }
        }
    }

    Release()

    Releases all the allocated resources.

    Declaration
    public void Release()

    SetAllOverridesTo(Boolean)

    Sets the state of all the overrides on this component to a given value.

    Declaration
    public void SetAllOverridesTo(bool state)
    Parameters
    Type Name Description
    Boolean state

    The value to set the state of the overrides to.

    Extension Methods

    AnalyticsUtils.ToNestedColumn<T>(T, Boolean)
    AnalyticsUtils.ToNestedColumnWithDefault<T>(T, T, Boolean)
    ReflectionUtils.Invoke(Object, String, Object[])
    ReflectionUtils.SetField(Object, String, Object)
    ReflectionUtils.GetField(Object, String)
    ReflectionUtils.GetFields(Object)
    Back to top Copyright © 2023 Unity Technologies — Terms of use
    Generated by DocFX
    on 08 September 2023