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 |
hasAdditionalProperties
Override this property if your editor makes use of the "Additional Properties" feature.
Declaration
public virtual bool hasAdditionalProperties { get; }
Property Value
Type | Description |
---|---|
Boolean |
serializedObject
A SerializedObject
representing the object being inspected.
Declaration
public SerializedObject serializedObject { get; }
Property Value
Type | Description |
---|---|
SerializedObject |
showAdditionalProperties
Set to true to show additional properties.
Declaration
public bool showAdditionalProperties { get; set; }
Property Value
Type | Description |
---|---|
Boolean |
target
Specifies the VolumeComponent this editor is drawing.
Declaration
public VolumeComponent target { get; }
Property Value
Type | Description |
---|---|
VolumeComponent |
volume
Obtains the Volume that is being edited from this volume component
Declaration
protected Volume volume { get; }
Property Value
Type | Description |
---|---|
Volume |
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 |
---|---|
Boolean | True if the additional content should be drawn. |
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 |
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 |
EndAdditionalPropertiesScope()
End a scope for additional properties.
Declaration
protected void EndAdditionalPropertiesScope()
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. |
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 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.
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 |
---|---|
Boolean | true if the property field has been rendered |
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 |
---|---|
Boolean | true if the property field has been rendered |
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 |