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.
Namespace: UnityEditor.Rendering
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 |
Properties
activeProperty
The serialized property of active for the component being inspected.
Declaration
public SerializedProperty activeProperty { get; }
Property Value
Type | Description |
---|---|
SerializedProperty |
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 |
hasAdvancedMode
Override this property if your editor makes use of the "More Options" feature.
Declaration
public virtual bool hasAdvancedMode { get; }
Property Value
Type | Description |
---|---|
Boolean |
isInAdvancedMode
Checks if the editor currently has the "More Options" feature toggled on.
Declaration
public bool isInAdvancedMode { get; }
Property Value
Type | Description |
---|---|
Boolean |
serializedObject
A SerializedObject
representing the object being inspected.
Declaration
public SerializedObject serializedObject { get; }
Property Value
Type | Description |
---|---|
SerializedObject |
target
Specifies the VolumeComponent this editor is drawing.
Declaration
public VolumeComponent target { get; }
Property Value
Type | Description |
---|---|
VolumeComponent |
Methods
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 |
GetDisplayTitle()
Sets the label for the component header. Override this method to provide a custom label. If you don't, Unity automatically inferres one from the class name.
Declaration
public virtual string GetDisplayTitle()
Returns
Type | Description |
---|---|
String | A label to display in the component header. |
OnDisable()
Unity calls this method when the object goes out of scope.
Declaration
public virtual void OnDisable()
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.
OnInspectorGUI()
Unity calls this method everytime 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.
PropertyField(SerializedDataParameter)
Draws a given SerializedDataParameter in the editor.
Declaration
protected void PropertyField(SerializedDataParameter property)
Parameters
Type | Name | Description |
---|---|---|
SerializedDataParameter | property | The property to draw in the editor |
PropertyField(SerializedDataParameter, GUIContent)
Draws a given SerializedDataParameter in the editor using a custom label and tooltip.
Declaration
protected void 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. |
Repaint()
Triggers an Inspector repaint event.
Declaration
public void Repaint()
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 |