Version 3.3.0.1

Sirenix.OdinInspector.Editor namespace

Classes

Unity property drawer for abstract types.
A polymorphic alias for getting and setting the values of an Sirenix.OdinInspector.Editor.IValueGetterSetter<TOwner, TValue>.
Some drawers don't want to have its GUI disabled, even if the property is read-only or a ReadOnly attribute is defined on the property. Use this attribute on any drawer to force GUI being enabled in these cases.
Extension method for List<Attribute>
A color palette.

Add, Edit or remove custom color palettes used by the ColorPaletteAttribute.

You can modify the configuration in the Odin Preferences window found in 'Tools -> Odin Inspector -> Preferences -> Drawers -> Color Palettes', or by locating the configuration file stored as a serialized object in the Sirenix folder under 'Odin Inspector/Config/Editor/ColorPaletteManager'.

Default implementation and the version that will be used when no other OdinAttributeProcessorLocator instance have been given to a PropertyTree. This implementation will find all AttributeProcessor definitions not marked with the OdinDontRegisterAttribute.
Default implementation and the version that will be used by PropertyTree if no other OdinPropertyResolver instance have been specified.

DrawerPriority is used on inspector drawers and indicates the priority of the drawer.

Use this to make your custom drawer to come before or after other drawers, and potentially hide other drawers.

Opens a window which displays a list of all icons available from EditorIcons.
Editor Only Mode Utility.
Base class for emitted MonoBehaviour-derived types that have been created by the UnityPropertyEmitter.
Strongly typed base class for emitted MonoBehaviour-derived types that have been created by the UnityPropertyEmitter.
Base class for emitted ScriptableObject-derived types that have been created by the UnityPropertyEmitter.
Strongly typed base class for emitted scriptable object types that have been created by the UnityPropertyEmitter.
A feature-rich enum selector with support for flag enums.

Contains general configuration for all Odin drawers.

You can modify the configuration in the Odin Preferences window found in 'Tools -> Odin Inspector -> Preferences -> Drawers -> General', or by locating the configuration file stored as a serialized object in the Sirenix folder under 'Odin Inspector/Config/Editor/GeneralDrawerConfig'.

In simple one-off use cases, making a custom OdinSelector might not be needed, as the GenericSelecor can be populated with anything and customized a great deal.
Responsible for getting and setting values on properties.
Context that persists across reloading and restarting Unity.
Context that persists across reloading and restarting Unity.
Configurations for Odin DLLs import settings.

Tell Odin which types should be drawn or should not be drawn by Odin.

You can modify which types should be drawn by Odin in the Preferences window found in 'Tools -> Odin Inspector -> Preferences -> Editor Types', or by locating the configuration file stored as a serialized object in the Sirenix folder under 'Odin Inspector/Config/Editor/InspectorConfig'.

Represents a property in the inspector, and provides the hub for all functionality related to that property.
Contains meta-data information about a property in the inspector, that can be used to create an actual property instance.

Contains configuration data for which types Odin should draw in the inspector.

A type that indicates that a drawer is missing.

Draws an InspectorTypeDrawingConfig instance, and contains methods getting all types that should be drawn by Odin.

Note that this class keeps a lot of static state, and is only intended to draw the instance of InspectorTypeDrawingConfig that exists in the InspectorConfig singleton asset. If used to draw other instances, odd behaviour may occur.

Provides a variety of miscellaneous utilities widely used in the inspector.
Helper class that provides a local copy of a GlobalPersistentContext<T>. When the local value is changed, it also changed the global value, but the global value does not change the local value.
Finds all attributes attached to the specified member and adds to them to attribute list.
Base drawer to inherit from to draw methods.

The property is not serialized by anything - possibly because it is a method, possibly because it is a field or property shown in the inspector without being serialized.

In the case of fields or properties, polymorphism, null values and types such as System.Collections.Generic.Dictionary<TKey, TValue> are supported, but will not be saved.

Base class for attribute drawers. Use this class to create your own custom attribute drawers that will work for all types. Alternatively you can derive from OdinAttributeDrawer<TAttribute, TValue> if you want to only support specific types.

Odin supports the use of GUILayout and takes care of undo for you. It also takes care of multi-selection in many simple cases. Check the manual for more information on handling multi-selection.

Also note that Odin does not require that your custom attribute inherits from Unity's PropertyAttribute.

Base class for all type specific attribute drawers. For non-type specific attribute drawers see OdinAttributeDrawer<TAttribute, TValue>.

Odin supports the use of GUILayout and takes care of undo for you. It also takes care of multi-selection in many simple cases. Checkout the manual for more information on handling multi-selection.

Also note that Odin does not require that your custom attribute inherits from Unity's PropertyAttribute.

Attribute processor that can add, change and remove attributes from a property.
Attribute processor that can add, change and remove attributes from a property.
Base class definition for OdinAttributeProcessorLocator. Responsible for finding and creating OdinAttributeProcessor instances to process attributes for properties. Default OdinAttributeProcessorLocator have been implemented as DefaultOdinAttributeProcessorLocator.
Use this attribute to prevent a type from being included in Odin systems. The attribute can be applied to Odin drawers, Odin property resolvers and Odin attribute processor types.

Base class for all Odin drawers. In order to create your own custom drawers you need to derive from one of the following drawers:

Remember to provide your custom drawer with an Sirenix.OdinInspector.Editor.OdinDrawerAttribute in order for it to be located by the .

Drawers require a PropertyTree context, and are instantiated automatically by the .

Odin supports the use of GUILayout and takes care of undo for you. It also takes care of multi-selection in many simple cases. Checkout the manual for more information.

OdinDrawer extensions.
Base class for creating editor windows using Odin.

Base class for all group drawers. Use this class to create your own custom group drawers. OdinGroupDrawer are used to group multiple properties together using an attribute.

Note that all box group attributes needs to inherit from the PropertyGroupAttribute

Remember to provide your custom drawer with an Sirenix.OdinInspector.Editor.OdinDrawerAttribute in order for it to be located by the .

Adds menu items to the Unity Editor, draws the About window, and the preference window found under Edit > Preferences > Odin Inspector.
Installed Odin Inspector Version Info.
Draws an editor window with a menu tree.
A menu item that represents one or more objects.

The style settings used by OdinMenuItem.

A nice trick to style your menu is to add the tree.DefaultMenuStyle to the tree itself, and style it live. Once you are happy, you can hit the Copy CSharp Snippet button, remove the style from the menu tree, and paste the style directly into your code.

OdinMenuTree provides a tree of OdinMenuItems, and helps with selection, inserting menu items into the tree, and can handle keyboard navigation for you.
The config used by OdinMenuTree to specify which features of the Menu Tree should be used when drawing.
Class with utility methods for OdinMenuTrees and OdinMenuItems.
Handles the selection of a Odin Menu Tree with support for multi selection.
Odin property system exception.
Base class for locator of OdinPropertyResolver. Use DefaultOdinPropertyResolverLocator for default implementation.
OdinSelectors is an abstract base class that combines OdinMenuTrees and OdinEditorWindows to help making feature-rich selectors and popup selectors.
The property is serialized by Odin. Polymorphism, null values and types such as System.Collections.Generic.Dictionary<TKey, TValue> are supported.

Base class for all value drawers. Use this class to create your own custom drawers for any specific type.

Remember to provide your custom drawer with an Sirenix.OdinInspector.Editor.OdinDrawerAttribute in order for it to be located by the .

Odin supports the use of GUILayout and takes care of undo for you. It also takes care of multi-selection in many simple cases. Checkout the manual for more information on handling multi-selection.

Provides context objects that still persist when Unity reloads or is restarted.
Persistent Context cache object.

Handles all prefab modifications that apply to the targets of a property tree, if any. This class determines which properties have modifications, what the modifications are, auto-applies modifications if the current instance values do not correspond to the prefab values, and also provides an API for modifying those modifications.

NOTE: This class is liable to see a lot of changes, as the prefab modification system is slated to be redesigned for increased extendability in the future. Do not depend overly on the current API.

Property drawer for primitive composite properties.
Represents the children of an InspectorProperty.

A contextual value attached to an InspectorProperty, mapped to a key, contained in a PropertyContextContainer.

Contains a context for an InspectorProperty, which offers the ability to address persistent values by key across several editor GUI frames.

Use this in drawers to store contextual editor-only values such as the state of a foldout.

This is a class for creating, getting and modifying a property's various states. An instance of this class always comes attached to an InspectorProperty.

See Odin's tutorials for more information about usage of the state system.

Represents a set of values of the same type as a tree of properties that can be drawn in the inspector, and provides an array of utilities for querying the tree of properties.

Represents a set of strongly typed values as a tree of properties that can be drawn in the inspector, and provides an array of utilities for querying the tree of properties.

This class also handles management of prefab modifications.

Represents a weakly typed collection of values for a PropertyValueEntry - one value per selected inspector target.
Represents a strongly typed collection of values for a PropertyValueEntry<TValue> - one value per selected inspector target.

Represents an alias for a strongly typed collection of values for a PropertyValueEntry<TValue> - one value per selected inspector target.

This class ensures that polymorphism works in the inspector, and can be strongly typed in applicable cases.

Represents the values of an InspectorProperty, and contains utilities for querying the values' type and getting and setting them.
Represents the values of an InspectorProperty, and contains utilities for querying the values' type and getting and setting them.
Represents the values of an InspectorProperty, and contains utilities for querying the values' type and getting and setting them.
A polymorphic alias for a PropertyValueEntry instance, used to implement strongly typed polymorphism in Odin.
A polymorphic alias for a PropertyValueEntry instance, used to implement strongly typed polymorphism in Odin.
Class that describes the different possible serialization backends that a property can have, and specifies the capabilities of each backend.
Not yet documented.
Sirenix preferences window.
Access the StaticInspectorWindow from Tools > Odin > Inspector > Static Inspector.
Find attributes attached to the type definition of a property and adds to them to attribute list.
The property is serialized by Unity's classic serialization backend. Polymorphism, null values and types such as System.Collections.Generic.Dictionary<TKey, TValue> are not supported.
This class contains utility methods for subscribing to various UnityEditor events reliably and safely across all Odin-supported versions of Unity.
The property is serialized by Unity's polymorphic serialization backend via the [SerializeReference] attribute. Polymorphism, null values and cyclical references are supported.
Provides utilities for emitting ScriptableObject and MonoBehaviour-derived types with specific property names and types, and providing instances of UnityEditor.SerializedProperty with those names and types.
A handle for a set of emitted Unity objects. When disposed (or collected by the GC) this handle will queue the emitted object instances for destruction.
Draws decimal properties marked with WrapAttribute.
Draws double properties marked with WrapAttribute.
Draws float properties marked with WrapAttribute.
Draws short properties marked with WrapAttribute.
Draws int properties marked with WrapAttribute.
Draws long properties marked with WrapAttribute.
Draws Vector2 properties marked with WrapAttribute.
Draws Vector3 properties marked with WrapAttribute.
Draws Vector4 properties marked with WrapAttribute.

Structs

Contains information about a change that is going to occur/has occurred to a collection.

DrawerPriority is used in conjunction with DrawerPriorityAttribute to specify the priority of any given drawer. It consists of 3 components: Super, Wrapper, Value, where Super is the most significant component, and Standard is the least significant component.

Used in GenericSelector<T> to associate name to a value in the GenericSelector.

Contains information about an editor type which is assigned to draw a certain type in the inspector.

This class uses the TypeBinder instance to bind types to names, and names to types.

Gets a unique key for any given property within a drawer.

Enums

Specifies the kinds of changes that can occur to collections.

DrawerPriorityLevel is used in conjunction with DrawerPriority.

InspectorDefaultEditors is a bitmask used to tell InspectorConfig which types should have an Odin Editor generated.
Enumeration describing the different types of properties that exist.
Enumeration for designating whether a PropertyValueEntry has a special state,.
Constants which describe the type of change that was made to the OdinMenuTrees's Selection
Member filter for access modifiers.
Member filter for member types.