smart-interactive-display/Assets/Plugins/Sirenix/Assemblies/Sirenix.OdinInspector.Edito...

10947 lines
612 KiB
XML
Raw Permalink Normal View History

2024-04-11 01:55:35 -07:00
<?xml version="1.0"?>
<doc>
<assembly>
<name>Sirenix.OdinInspector.Editor</name>
</assembly>
<members>
<member name="T:Sirenix.OdinInspector.Editor.ActionResolvers.ActionResolver">
<summary>
<para>An ActionResolver resolves a string to an action, given an InspectorProperty instance to use as context. Call <see cref="M:Sirenix.OdinInspector.Editor.ActionResolvers.ActionResolver.Get(Sirenix.OdinInspector.Editor.InspectorProperty,System.String)"/> to get an instance of an ActionResolver.</para>
<para>Action resolvers are a globally extendable system that can be hooked into and modified or changed by creating and registering an <see cref="T:Sirenix.OdinInspector.Editor.ActionResolvers.ActionResolverCreator"/>.</para>
<para>See Odin's tutorials for details and examples of how to use ActionResolvers.</para>
</summary>
</member>
<member name="F:Sirenix.OdinInspector.Editor.ActionResolvers.ActionResolver.Context">
<summary>
The context of this ActionResolver, containing all of its configurations and values it needs to function. For performance and simplicity reasons, this is a single very large struct that is passed around by ref to anything that needs it.
</summary>
</member>
<member name="F:Sirenix.OdinInspector.Editor.ActionResolvers.ActionResolver.Action">
<summary>
The delegate that executes the actual action. You should not call this manually, but instead call <see cref="M:Sirenix.OdinInspector.Editor.ActionResolvers.ActionResolver.DoAction(System.Int32)"/>.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.ActionResolvers.ActionResolver.ErrorMessage">
<summary>
The current error message that the resolver has, or null if there is no error message. This is a shortcut for writing "resolver.Context.ErrorMessage".
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.ActionResolvers.ActionResolver.HasError">
<summary>
Whether there is an error message at the moment. This is a shortcut for writing "resolver.Context.ErrorMessage != null".
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.ActionResolvers.ActionResolver.DrawError">
<summary>
Draws an error message box if there is an error, and does nothing if there is no error.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.ActionResolvers.ActionResolver.DoAction(System.Int32)">
<summary>
Executes the resolved action for a given selection index.
</summary>
<param name="selectionIndex">The selection index to execute the action on. Defaults to 0.</param>
</member>
<member name="M:Sirenix.OdinInspector.Editor.ActionResolvers.ActionResolver.DoActionForAllSelectionIndices">
<summary>
Executes the action for all selection indices.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.ActionResolvers.ActionResolver.GetFromContext(Sirenix.OdinInspector.Editor.ActionResolvers.ActionResolverContext@)">
<summary>
Creates a new action resolver instance from a pre-built context struct. This is a more advanced use that requires you to
know how the context needs to be set up before action resolution happens. However, this allows you to do more advanced
things like adjust various context values before string resolution happens.
</summary>
<param name="context">The pre-built context that should be used to get a resolver.</param>
</member>
<member name="M:Sirenix.OdinInspector.Editor.ActionResolvers.ActionResolver.Get(Sirenix.OdinInspector.Editor.InspectorProperty,System.String)">
<summary>
Creates a new action resolver instance for a given string.
</summary>
<param name="property">The property that is the context for the resolution to happen in.</param>
<param name="resolvedString">The string that should be resolved to an action.</param>
</member>
<member name="M:Sirenix.OdinInspector.Editor.ActionResolvers.ActionResolver.Get(Sirenix.OdinInspector.Editor.InspectorProperty,System.String,Sirenix.OdinInspector.Editor.ActionResolvers.NamedValue[])">
<summary>
Creates a new action resolver instance for a given string.
</summary>
<param name="property">The property that is the context for the resolution to happen in.</param>
<param name="resolvedString">The string that should be resolved to an action.</param>
<param name="namedArgs">The extra named args that this resolver has access to. Passing in a named arg that already exists will silently override the pre-existing named arg.</param>
</member>
<member name="M:Sirenix.OdinInspector.Editor.ActionResolvers.ActionResolver.GetCombinedErrors(Sirenix.OdinInspector.Editor.ActionResolvers.ActionResolver,Sirenix.OdinInspector.Editor.ActionResolvers.ActionResolver,Sirenix.OdinInspector.Editor.ActionResolvers.ActionResolver,Sirenix.OdinInspector.Editor.ActionResolvers.ActionResolver,Sirenix.OdinInspector.Editor.ActionResolvers.ActionResolver,Sirenix.OdinInspector.Editor.ActionResolvers.ActionResolver,Sirenix.OdinInspector.Editor.ActionResolvers.ActionResolver,Sirenix.OdinInspector.Editor.ActionResolvers.ActionResolver)">
<summary>
Gets a nicely formatted string that lists all the errors in the given set of action resolvers. The returned value is null if there are no errors.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.ActionResolvers.ActionResolver.GetCombinedErrors(Sirenix.OdinInspector.Editor.ActionResolvers.ActionResolver,Sirenix.OdinInspector.Editor.ActionResolvers.ActionResolver,Sirenix.OdinInspector.Editor.ActionResolvers.ActionResolver,Sirenix.OdinInspector.Editor.ActionResolvers.ActionResolver,Sirenix.OdinInspector.Editor.ActionResolvers.ActionResolver,Sirenix.OdinInspector.Editor.ActionResolvers.ActionResolver,Sirenix.OdinInspector.Editor.ActionResolvers.ActionResolver,Sirenix.OdinInspector.Editor.ActionResolvers.ActionResolver,Sirenix.OdinInspector.Editor.ActionResolvers.ActionResolver[])">
<summary>
Gets a nicely formatted string that lists all the errors in the given set of action resolvers. The returned value is null if there are no errors.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.ActionResolvers.ActionResolver.DrawErrors(Sirenix.OdinInspector.Editor.ActionResolvers.ActionResolver,Sirenix.OdinInspector.Editor.ActionResolvers.ActionResolver,Sirenix.OdinInspector.Editor.ActionResolvers.ActionResolver,Sirenix.OdinInspector.Editor.ActionResolvers.ActionResolver,Sirenix.OdinInspector.Editor.ActionResolvers.ActionResolver,Sirenix.OdinInspector.Editor.ActionResolvers.ActionResolver,Sirenix.OdinInspector.Editor.ActionResolvers.ActionResolver,Sirenix.OdinInspector.Editor.ActionResolvers.ActionResolver)">
<summary>
Draws error boxes for all errors in the given action resolvers, or does nothing if there are no errors. This is equivalent to calling DrawError() on all resolvers passed to this method.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.ActionResolvers.ActionResolver.DrawErrors(Sirenix.OdinInspector.Editor.ActionResolvers.ActionResolver,Sirenix.OdinInspector.Editor.ActionResolvers.ActionResolver,Sirenix.OdinInspector.Editor.ActionResolvers.ActionResolver,Sirenix.OdinInspector.Editor.ActionResolvers.ActionResolver,Sirenix.OdinInspector.Editor.ActionResolvers.ActionResolver,Sirenix.OdinInspector.Editor.ActionResolvers.ActionResolver,Sirenix.OdinInspector.Editor.ActionResolvers.ActionResolver,Sirenix.OdinInspector.Editor.ActionResolvers.ActionResolver,Sirenix.OdinInspector.Editor.ActionResolvers.ActionResolver[])">
<summary>
Draws error boxes for all errors in the given action resolvers, or does nothing if there are no errors. This is equivalent to calling DrawError() on all resolvers passed to this method.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.ActionResolvers.ActionResolverContext">
<summary>
This struct contains all of an ActionResolver's configurations and values it needs to function. For performance and simplicity reasons, this is a single very large struct that lives on an ActionResolver instance and is passed around by ref to anything that needs it.
</summary>
</member>
<member name="F:Sirenix.OdinInspector.Editor.ActionResolvers.ActionResolverContext.Property">
<summary>
The property that *provides* the context for the action resolution. This is the instance that was passed to the resolver when it was created. Note that this is different from <see cref="P:Sirenix.OdinInspector.Editor.ActionResolvers.ActionResolverContext.ContextProperty"/>, which is based on this value, but almost always isn't the same InspectorProperty instance.
</summary>
</member>
<member name="F:Sirenix.OdinInspector.Editor.ActionResolvers.ActionResolverContext.ErrorMessage">
<summary>
The error message, if a valid action resolution wasn't found, or if creation of the action resolver failed because <see cref="P:Sirenix.OdinInspector.Editor.ActionResolvers.ActionResolverContext.ResolvedString"/> was invalid, or if the action was executed but threw an exception. (In this last case, <see cref="F:Sirenix.OdinInspector.Editor.ActionResolvers.ActionResolverContext.ErrorMessageIsDueToException"/> will be true.)
</summary>
</member>
<member name="F:Sirenix.OdinInspector.Editor.ActionResolvers.ActionResolverContext.NamedValues">
<summary>
The named values that are available to the action resolver. Use this field only to get and set named values - once the ValueResolver has been created, new named values will have no effect.
</summary>
</member>
<member name="F:Sirenix.OdinInspector.Editor.ActionResolvers.ActionResolverContext.ErrorMessageIsDueToException">
<summary>
This will be true if <see cref="F:Sirenix.OdinInspector.Editor.ActionResolvers.ActionResolverContext.ErrorMessage"/> is not null and the message was caused by an exception thrown by code invoked during execution of the resolved action.
</summary>
</member>
<member name="F:Sirenix.OdinInspector.Editor.ActionResolvers.ActionResolverContext.LogExceptions">
<summary>
Whether exceptions thrown during action execution should be logged to the console.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.ActionResolvers.ActionResolverContext.ResolvedString">
<summary>
The string that is resolved to perform an action.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.ActionResolvers.ActionResolverContext.SyncRefParametersWithNamedValues">
<summary>
Whether the action resolver should sync ref parameters of invoked methods with named values. If this is true, then if a ref or out parameter value is changed during action execution, the named value associated with that parameter will also be changed to the same value.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.ActionResolvers.ActionResolverContext.IsResolved">
<summary>
Whether this context has been resolved.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.ActionResolvers.ActionResolverContext.ParentType">
<summary>
The type that is the parent of the action resolution, ie, the type that is the context. This is the same as <see cref="P:Sirenix.OdinInspector.Editor.ActionResolvers.ActionResolverContext.ContextProperty"/>.ValueEntry.TypeOfValue.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.ActionResolvers.ActionResolverContext.ContextProperty">
<summary>
The property that *is* the context for the action resolution. This is not the instance that was passed to the resolver when it was created, but this value is based on that instance. This is the property that provides the actual context - for example, if <see cref="F:Sirenix.OdinInspector.Editor.ActionResolvers.ActionResolverContext.Property"/> is for a member of a type - or for an element in a collection contained by a member - this value will be the parent property for the type that contains that member. Only if <see cref="F:Sirenix.OdinInspector.Editor.ActionResolvers.ActionResolverContext.Property"/> is the tree's root property is <see cref="P:Sirenix.OdinInspector.Editor.ActionResolvers.ActionResolverContext.ContextProperty"/> the same as <see cref="F:Sirenix.OdinInspector.Editor.ActionResolvers.ActionResolverContext.Property"/>.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.ActionResolvers.ActionResolverContext.GetParentValue(System.Int32)">
<summary>
Gets the parent value which provides the context of the resolver.
</summary>
<param name="selectionIndex">The selection index of the parent value to get.</param>
</member>
<member name="M:Sirenix.OdinInspector.Editor.ActionResolvers.ActionResolverContext.SetParentValue(System.Int32,System.Object)">
<summary>
Sets the parent value which provides the context of the resolver.
</summary>
<param name="selectionIndex">The selection index of the parent value to set.</param>
<param name="value">The value to set.</param>
</member>
<member name="M:Sirenix.OdinInspector.Editor.ActionResolvers.ActionResolverContext.AddDefaultContextValues">
<summary>
Adds the default named values of "property" and "value" to the context's named values.
This method is usually automatically invoked when a resolver is created, so there
is no need to invoke it manually.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.ColorPalette">
<summary>
A color palette.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.ColorPalette.Name">
<summary>
Name of the color palette.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.ColorPalette.Colors">
<summary>
The colors.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.ColorPalette.ShowAlpha">
<summary>
Whether to show the alpha channel.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.ColorPaletteManager">
<summary>
<para>Add, Edit or remove custom color palettes used by the <see cref="T:Sirenix.OdinInspector.ColorPaletteAttribute"/>.</para>
<para>
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'.
</para>
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.ColorPaletteManager.SwatchSpacing">
<summary>
Specify the amount of spacing between each color in a color palette.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.ColorPaletteManager.SwatchSize">
<summary>
Specify the width of each color in a color palette. If StretchPalette is set to true, this will become the min-width.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.ColorPaletteManager.StretchPalette">
<summary>
If true, all color in a color palette is stretch so that the entire color-palette area is filled.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.ColorPaletteManager.ShowPaletteName">
<summary>
If true, a toolbar with the name of the color palette is shown above each color palette.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.ColorPaletteManager.ColorPalettes">
<summary>
Gives you the list of all custom color palettes.
Remember to call UnityEditor.EditorUtility.SetDirty(ColorPaletteManager.Instance) after modifying the list.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.EditorOnlyModeConfig">
<summary>
Editor Only Mode Utility.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.EditorOnlyModeConfig.Update">
<summary>
Gaither all necessary information about the editor only state.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.EditorOnlyModeConfig.DisableEditorOnlyMode">
<summary>
Disables Editor Only Mode.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.EditorOnlyModeConfig.EnableEditorOnlyMode(System.Boolean)">
<summary>
Enables editor only mode.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.EditorOnlyModeConfig.IsEditorOnlyModeEnabled">
<summary>
Checks to see whether Editor Only Mode is enabled.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.EditorOnlyModeConfig.IsInSourceCode">
<summary>
Checks to see whether Odin Inspector is installed in Source Code mode.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.GeneralDrawerConfig">
<summary>
<para>Contains general configuration for all Odin drawers.</para>
<para>
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'.
</para>
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.GeneralDrawerConfig.EnableUIToolkitSupport">
<summary>
Specify whether or not the script selector above components should be drawn.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.GeneralDrawerConfig.ShowMonoScriptInEditor">
<summary>
Specify whether or not the script selector above components should be drawn.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.GeneralDrawerConfig.ShowPrefabModificationsDisabledMessage">
<summary>
Specify whether or not the warning for properties that do not support prefab modifications should be shown in the inspector.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.GeneralDrawerConfig.ShowPrefabModifiedValueBar">
<summary>
Specify whether or not the warning for properties that do not support prefab modifications should be shown in the inspector.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.GeneralDrawerConfig.MaxRecursiveDrawDepth">
<summary>
Specifies the maximum depth to which a property can draw itself recursively before the system refuses to draw it any deeper.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.GeneralDrawerConfig.ExpandFoldoutByDefault">
<summary>
If set to true, most foldouts throughout the inspector will be expanded by default.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.GeneralDrawerConfig.ShowButtonResultsByDefault">
<summary>
If set to true, buttons will show the result values from invoking them in the inspector by default.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.GeneralDrawerConfig.GUIFoldoutAnimationDuration">
<summary>
Specify the animation speed for most foldouts throughout the inspector.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.GeneralDrawerConfig.ShakingAnimationDuration">
<summary>
Specify the shaking duration for most shaking animations throughout the inspector.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.GeneralDrawerConfig.TabPageSlideAnimationDuration">
<summary>
Specify the animation speed for <see cref="T:Sirenix.OdinInspector.TabGroupAttribute"/>
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.GeneralDrawerConfig.ResponsiveVectorComponentFields">
<summary>
When <c>true</c> the component labels, for vector fields, will be hidden when the field is too narrow.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.GeneralDrawerConfig.QuaternionDrawMode">
<summary>
Specify how the Quaternion struct should be shown in the inspector.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.GeneralDrawerConfig.UseImprovedEnumDropDown">
<summary>
Gets or sets a value indicating whether [use improved enum drop down].
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.GeneralDrawerConfig.DrawEnumTypeTitle">
<summary>
Gets or sets a value indicating whether [use improved enum drop down].
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.GeneralDrawerConfig.ShowPagingInTables">
<summary>
Specify whether or not a list should hide the foldout triangle when the list is empty.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.GeneralDrawerConfig.HideFoldoutWhileEmpty">
<summary>
Specifies whether a list should hide the foldout triangle when the list is empty.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.GeneralDrawerConfig.HidePagingWhileCollapsed">
<summary>
Specify whether or not lists should hide the paging buttons when the list is collapsed.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.GeneralDrawerConfig.HidePagingWhileOnlyOnePage">
<summary>
Specify whether or not lists should hide the paging buttons when there is only one page.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.GeneralDrawerConfig.NumberOfItemsPrPage">
<summary>
Specify the number of elements drawn per page.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.GeneralDrawerConfig.OpenListsByDefault">
<summary>
Specify whether or not lists should be expanded or collapsed by default.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.GeneralDrawerConfig.ShowExpandButton">
<summary>
Specify whether or not to include a button which expands the list, showing all pages at once.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.GeneralDrawerConfig.ShowItemCount">
<summary>
Specify whether or not lists should show item count.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.GeneralDrawerConfig.ShowIndexLabels">
<summary>
Specify whether or not lists should show item count.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.GeneralDrawerConfig.ListItemColorEvenDarkSkin">
<summary>
Specify the color of even list elements when in the dark skin.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.GeneralDrawerConfig.ListItemColorOddDarkSkin">
<summary>
Specify the color of odd list elements when in the dark skin.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.GeneralDrawerConfig.ListItemColorEvenLightSkin">
<summary>
Specify the color of even list elements when in the light skin.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.GeneralDrawerConfig.ListItemColorOddLightSkin">
<summary>
Specify the color of odd list elements when in the light skin.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.GeneralDrawerConfig.SquareUnityObjectFieldHeight">
<summary>
Gets or sets the default size of the preview object field.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.GeneralDrawerConfig.SquareUnityObjectAlignment">
<summary>
Gets or sets the default alignment of the preview object field.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.GeneralDrawerConfig.SquareUnityObjectEnableFor">
<summary>
Gets or sets which types should be drawn by default by the preview object field.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.GeneralDrawerConfig.ResetToDefault">
<summary>
Resets all settings to default.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.ImportSettingsConfig">
<summary>
Configurations for Odin DLLs import settings.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.ImportSettingsConfig.AutomateBeforeBuild">
<summary>
Gets or sets a value indicating whether or not Odin should automatically configure the import settings of its DLLs in a preprocess build step.
Keep in mind that this feature is only supported by Unity version 5.6 and up.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.ImportSettingsConfig.IsAutomationSupported">
<summary>
Gets a value indicating whether or not automatic configuration of Odin's DLL import settings is supported by the current Unity version.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.InspectorConfig">
<summary>
<para>
Tell Odin which types should be drawn or should not be drawn by Odin.
</para>
<para>
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'.
</para>
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.InspectorConfig.EnableOdinInInspector">
<summary>
Whether Odin is enabled in the inspector or not.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.InspectorConfig.DefaultEditorBehaviour">
<summary>
InspectorDefaultEditors is a bitmask used to tell which types should have an Odin Editor generated.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.InspectorConfig.DrawingConfig">
<summary>
The config which contains configuration data for which types Odin should draw in the inspector.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.InspectorConfig.UpdateOdinEditors">
<summary>
Updates Unity with the current Odin editor configuration.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.InspectorDefaultEditors">
<summary>
InspectorDefaultEditors is a bitmask used to tell <see cref="T:Sirenix.OdinInspector.Editor.InspectorConfig"/> which types should have an Odin Editor generated.
</summary>
<seealso cref="T:Sirenix.OdinInspector.Editor.InspectorConfig"/>
</member>
<member name="F:Sirenix.OdinInspector.Editor.InspectorDefaultEditors.None">
<summary>
Excludes all types.
</summary>
</member>
<member name="F:Sirenix.OdinInspector.Editor.InspectorDefaultEditors.UserTypes">
<summary>
UserTypes includes all custom user scripts that are not located in an editor or plugin folder.
</summary>
</member>
<member name="F:Sirenix.OdinInspector.Editor.InspectorDefaultEditors.PluginTypes">
<summary>
PluginTypes includes all types located in the plugins folder and are not located in an editor folder.
</summary>
</member>
<member name="F:Sirenix.OdinInspector.Editor.InspectorDefaultEditors.UnityTypes">
<summary>
UnityTypes includes all types depended on UnityEngine and from UnityEngine, except editor, plugin and user types.
</summary>
</member>
<member name="F:Sirenix.OdinInspector.Editor.InspectorDefaultEditors.OtherTypes">
<summary>
OtherTypes include all other types that are not depended on UnityEngine or UnityEditor.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.InspectorTypeDrawingConfig">
<summary>
<para>Contains configuration data for which types Odin should draw in the inspector.</para>
</summary>
<remarks>
<para>Note that this class supports assigning arbitrary editor types to inspect any Unity object type. The Editor Types GUI in preferences simply does not, as of now, support assigning editors of any other type than <see cref="T:Sirenix.OdinInspector.Editor.OdinEditor"/>. However, the API is open to further customization.</para>
<para>When an editor is generated for a type, a new editor type is added to the GeneratedOdinEditors assembly, which is derived from the assigned editor type - in most cases, <see cref="T:Sirenix.OdinInspector.Editor.OdinEditor"/>.</para>
<para>You can check if an editor is compatible using <see cref="M:Sirenix.OdinInspector.Editor.InspectorTypeDrawingConfig.UnityInspectorEditorIsValidBase(System.Type,System.Type)"/>.</para>
</remarks>
<seealso cref="T:Sirenix.OdinInspector.Editor.InspectorTypeDrawingConfigDrawer"/>.
<seealso cref="!:EditorCompilation"/>.
</member>
<member name="F:Sirenix.OdinInspector.Editor.InspectorTypeDrawingConfig.TypeBinder">
<summary>
<para>The type binder that the <see cref="T:Sirenix.OdinInspector.Editor.InspectorTypeDrawingConfig"/> uses to bind types to names, and names to types.</para>
<para>This is usually an instance of <see cref="T:Sirenix.Serialization.DefaultSerializationBinder"/>.</para>
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.InspectorTypeDrawingConfig.ResetToDefault">
<summary>
Resets the drawing configuration to the default values.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.InspectorTypeDrawingConfig.GetAllDrawnTypesWithEntries">
<summary>
Gets a list of all drawn types that have entries in the drawing config.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.InspectorTypeDrawingConfig.UpdateCaches">
<summary>
Forces the config's internal drawer type to value type lookup cache to rebuild itself.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.InspectorTypeDrawingConfig.ClearEditorEntryForDrawnType(System.Type)">
<summary>
Clears the editor type entry for the given drawer, so it will be set to Unity's default.
</summary>
<param name="drawnType">The drawn type to clear the editor for.</param>
<exception cref="T:System.ArgumentNullException">drawnType is null</exception>
</member>
<member name="M:Sirenix.OdinInspector.Editor.InspectorTypeDrawingConfig.SetEditorType(System.Type,System.Type)">
<summary>
Assigns a given editor to draw a given type.
</summary>
<param name="drawnType">The drawn type to assign an editor type for.</param>
<param name="editorType">The editor type to assign. When generating editors, a type derived from this editor will be created and set to draw the given drawn type.</param>
<exception cref="T:System.ArgumentNullException">drawnType</exception>
<exception cref="T:System.ArgumentException">The type " + editorType.GetNiceName() + " is not a valid base editor for type " + drawnType.GetNiceName() + ". Check criteria using <see cref="M:Sirenix.OdinInspector.Editor.InspectorTypeDrawingConfig.UnityInspectorEditorIsValidBase(System.Type,System.Type)"/>.</exception>
</member>
<member name="M:Sirenix.OdinInspector.Editor.InspectorTypeDrawingConfig.HasEntryForType(System.Type)">
<summary>
Determines whether an editor value has been assigned for a given drawn type.
</summary>
<param name="drawnType">The drawn type to check.</param>
<exception cref="T:System.ArgumentNullException">drawnType is null</exception>
</member>
<member name="M:Sirenix.OdinInspector.Editor.InspectorTypeDrawingConfig.GetEditorType(System.Type)">
<summary>
Gets which editor type would draw the given type. If the type has not been assigned a custom editor type in the config, the default editor type is returned using <see cref="M:Sirenix.OdinInspector.Editor.InspectorTypeDrawingConfig.GetDefaultEditorType(System.Type)"/>.
</summary>
<param name="drawnType">The drawn type to get an editor type for.</param>
<returns>The editor that would draw the given type.</returns>
<exception cref="T:System.ArgumentNullException">drawnType is null</exception>
</member>
<member name="M:Sirenix.OdinInspector.Editor.InspectorTypeDrawingConfig.GetDefaultEditorType(System.Type)">
<summary>
Gets the default editor that this type would have, if no custom editor was set for this type in particular. This is calculated using the value of <see cref="P:Sirenix.OdinInspector.Editor.InspectorConfig.DefaultEditorBehaviour"/>.
</summary>
<param name="drawnType">The drawn type to get the default editor for.</param>
<returns>The editor that would draw this type by default, or null, if there is no default Odin-defined editor for the drawn type.</returns>
<exception cref="T:System.ArgumentNullException">drawnType is null</exception>
</member>
<member name="M:Sirenix.OdinInspector.Editor.InspectorTypeDrawingConfig.UnityInspectorEditorIsValidBase(System.Type)">
<summary>
Checks whether the given editor can be assigned to draw any type using the <see cref="T:Sirenix.OdinInspector.Editor.InspectorTypeDrawingConfig"/> class.
</summary>
<param name="editorType">Type of the editor to check.</param>
<returns>True if the editor is valid, otherwise false</returns>
</member>
<member name="M:Sirenix.OdinInspector.Editor.InspectorTypeDrawingConfig.UnityInspectorEditorIsValidBase(System.Type,System.Type)">
<summary>
<para>Checks whether the given editor can be assigned to draw a given type using the <see cref="T:Sirenix.OdinInspector.Editor.InspectorTypeDrawingConfig" /> class.</para>
<para>This method checks the <see cref="T:UnityEditor.CustomEditor"/> attribute on the type for whether the given type is compatible.</para>
</summary>
<param name="editorType">Type of the editor to check.</param>
<param name="drawnType">Type of the drawn value to check. If this parameter is null, the drawn type is not checked for compatibility with the editor type; only the editor type itself is checked for validity.</param>
<returns>True if the editor is valid, otherwise false</returns>
<exception cref="T:System.ArgumentNullException">editorType</exception>
</member>
<member name="M:Sirenix.OdinInspector.Editor.InspectorTypeDrawingConfig.GetEditorDrawnType(System.Type,System.Boolean@)">
<summary>
<para>Gets the type that an editor draws, by extracting it from the editor's <see cref="T:UnityEditor.CustomEditor"/> attribute, if it is declared.</para>
<para>This method returns null for abstract editor types, as those can never draw anything.</para>
</summary>
<param name="editorType">Type of the editor.</param>
<param name="editorForChildClasses">Whether the editor in question is also an editor for types derived from the given type.</param>
<returns></returns>
<exception cref="T:System.ArgumentNullException">editorType</exception>
</member>
<member name="T:Sirenix.OdinInspector.Editor.InspectorTypeDrawingConfig.MissingEditor">
<summary>
A type that indicates that a drawer is missing.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.InspectorTypeDrawingConfigDrawer">
<summary>
<para>Draws an <see cref="T:Sirenix.OdinInspector.Editor.InspectorTypeDrawingConfig"/> instance, and contains methods getting all types that should be drawn by Odin.</para>
<para>Note that this class keeps a lot of static state, and is only intended to draw the instance of <see cref="T:Sirenix.OdinInspector.Editor.InspectorTypeDrawingConfig"/> that exists in the <see cref="T:Sirenix.OdinInspector.Editor.InspectorConfig"/> singleton asset. If used to draw other instances, odd behaviour may occur.</para>
</summary>
<seealso cref="T:Sirenix.OdinInspector.Editor.InspectorTypeDrawingConfig"/>.
<seealso cref="!:EditorCompilation"/>.
</member>
<member name="M:Sirenix.OdinInspector.Editor.InspectorTypeDrawingConfigDrawer.OdinCanCreateEditorFor(System.Type)">
<summary>
Determines whether Odin is capable of creating a custom editor for a given type.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.InspectorTypeDrawingConfigDrawer.GetEditors">
<summary>
Gets an array of all assigned editor types, and the types they have to draw.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.InspectorTypeDrawingConfigDrawer.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Draws the property.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.OdinInspectorVersion">
<summary>
Installed Odin Inspector Version Info.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.OdinInspectorVersion.BuildName">
<summary>
Gets the name of the current running version of Odin Inspector.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.OdinInspectorVersion.Version">
<summary>
Gets the current running version of Odin Inspector.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.OdinInspectorVersion.IsEnterprise">
<summary>
Whether the current version of Odin is an enterprise version.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.TypeDrawerPair">
<summary>
<para>Contains information about an editor type which is assigned to draw a certain type in the inspector.</para>
<para>This class uses the <see cref="F:Sirenix.OdinInspector.Editor.InspectorTypeDrawingConfig.TypeBinder"/> instance to bind types to names, and names to types.</para>
</summary>
<seealso cref="T:Sirenix.OdinInspector.Editor.InspectorTypeDrawingConfigDrawer"/>.
<seealso cref="T:Sirenix.OdinInspector.Editor.InspectorTypeDrawingConfig"/>.
<seealso cref="!:EditorCompilation"/>.
</member>
<member name="F:Sirenix.OdinInspector.Editor.TypeDrawerPair.Default">
<summary>
A default, empty <see cref="T:Sirenix.OdinInspector.Editor.TypeDrawerPair"/> value.
</summary>
</member>
<member name="F:Sirenix.OdinInspector.Editor.TypeDrawerPair.DrawnTypeName">
<summary>
The name of the type to be drawn.
</summary>
</member>
<member name="F:Sirenix.OdinInspector.Editor.TypeDrawerPair.EditorTypeName">
<summary>
The name of the editor type.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.TypeDrawerPair.#ctor(System.Type)">
<summary>
Initializes a new instance of the <see cref="T:Sirenix.OdinInspector.Editor.TypeDrawerPair"/> struct.
</summary>
<param name="drawnType">The drawn type.</param>
<exception cref="T:System.ArgumentNullException">drawnType is null</exception>
</member>
<member name="M:Sirenix.OdinInspector.Editor.TypeDrawerPair.#ctor(System.Type,System.Type)">
<summary>
Initializes a new instance of the <see cref="T:Sirenix.OdinInspector.Editor.TypeDrawerPair"/> struct.
</summary>
<param name="drawnType">The drawn type.</param>
<param name="editorType">The editor type.</param>
<exception cref="T:System.ArgumentNullException">drawnType is null</exception>
</member>
<member name="M:Sirenix.OdinInspector.Editor.TypeDrawerPair.Equals(Sirenix.OdinInspector.Editor.TypeDrawerPair)">
<summary>
Determines whether the specified <see cref="T:Sirenix.OdinInspector.Editor.TypeDrawerPair" /> is equal to this instance.
</summary>
<param name="other">The <see cref="T:Sirenix.OdinInspector.Editor.TypeDrawerPair" /> to compare with this instance.</param>
<returns>
<c>true</c> if the specified <see cref="T:Sirenix.OdinInspector.Editor.TypeDrawerPair" /> is equal to this instance; otherwise, <c>false</c>.
</returns>
</member>
<member name="M:Sirenix.OdinInspector.Editor.TypeDrawerPair.GetHashCode">
<summary>
Returns a hash code for this instance.
</summary>
<returns>
A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table.
</returns>
</member>
<member name="M:Sirenix.OdinInspector.Editor.TypeDrawerPair.Equals(System.Object)">
<summary>
Determines whether the specified <see cref="T:System.Object" />, is equal to this instance.
</summary>
<param name="obj">The <see cref="T:System.Object" /> to compare with this instance.</param>
<returns>
<c>true</c> if the specified <see cref="T:System.Object" /> is equal to this instance; otherwise, <c>false</c>.
</returns>
</member>
<member name="M:Sirenix.OdinInspector.Editor.TypeDrawerPair.op_Equality(Sirenix.OdinInspector.Editor.TypeDrawerPair,Sirenix.OdinInspector.Editor.TypeDrawerPair)">
<summary>
Implements the operator ==.
</summary>
<param name="x">The x.</param>
<param name="y">The y.</param>
<returns>
The result of the operator.
</returns>
</member>
<member name="M:Sirenix.OdinInspector.Editor.TypeDrawerPair.op_Inequality(Sirenix.OdinInspector.Editor.TypeDrawerPair,Sirenix.OdinInspector.Editor.TypeDrawerPair)">
<summary>
Implements the operator !=.
</summary>
<param name="x">The x.</param>
<param name="y">The y.</param>
<returns>
The result of the operator.
</returns>
</member>
<member name="T:Sirenix.OdinInspector.Editor.PropertyContext`1">
<summary>
<para>A contextual value attached to an <see cref="T:Sirenix.OdinInspector.Editor.InspectorProperty"/>, mapped to a key, contained in a <see cref="T:Sirenix.OdinInspector.Editor.PropertyContextContainer"/>.</para>
</summary>
</member>
<member name="F:Sirenix.OdinInspector.Editor.PropertyContext`1.Value">
<summary>
The contained value.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyContext`1.Create">
<summary>
Creates a new PropertyContext.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyContext`1.op_Explicit(Sirenix.OdinInspector.Editor.PropertyContext{`0})~`0">
<summary>
Performs an explicit conversion from <see cref="T:Sirenix.OdinInspector.Editor.PropertyContext`1"/> to <see cref="!:T"/>.
</summary>
<param name="context">The context.</param>
<returns>
The result of the conversion.
</returns>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyContext`1.ToString">
<summary>
Returns a <see cref="T:System.String" /> that represents this instance, of the format "<see cref="T:Sirenix.OdinInspector.Editor.PropertyContext`1"/>: Value.ToString()".
</summary>
<returns>
A <see cref="T:System.String" /> that represents this instance.
</returns>
</member>
<member name="T:Sirenix.OdinInspector.Editor.PropertyContextContainer">
<summary>
<para>Contains a context for an <see cref="T:Sirenix.OdinInspector.Editor.InspectorProperty"/>, which offers the ability to address persistent values by key across several editor GUI frames.</para>
<para>Use this in drawers to store contextual editor-only values such as the state of a foldout.</para>
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyContextContainer.#ctor(Sirenix.OdinInspector.Editor.InspectorProperty)">
<summary>
Initializes a new instance of the <see cref="T:Sirenix.OdinInspector.Editor.PropertyContextContainer"/> class.
</summary>
<param name="property">The property.</param>
<exception cref="T:System.ArgumentNullException">property</exception>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyContextContainer.GetGlobal``1(System.String,System.Func{``0})">
<summary>
<para>Gets a global context value for a given key, using a given delegate to generate a default value if the context doesn't already exist.</para>
<para>Global contexts are not associated with any one specific drawer, and so are shared across all drawers for this property.</para>
</summary>
<typeparam name="T">The type of the context value to get.</typeparam>
<param name="key">The key of the context value to get.</param>
<param name="getDefaultValue">A delegate for generating a default value.</param>
<returns>The found context.</returns>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyContextContainer.GetGlobal``1(System.String,``0)">
<summary>
<para>Gets a global context value for a given key, using a given default value if the context doesn't already exist.</para>
<para>Global contexts are not associated with any one specific drawer, and so are shared across all drawers for this property.</para>
</summary>
<typeparam name="T">The type of the context value to get.</typeparam>
<param name="key">The key of the context value to get.</param>
<param name="defaultValue">The default value to set if the context value doesn't exist yet.</param>
<returns>The found context.</returns>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyContextContainer.GetGlobal``1(System.String)">
<summary>
<para>Gets a global context value for a given key, and creates a new instance of <see cref="!:T"/> as a default value if the context doesn't already exist.</para>
<para>Global contexts are not associated with any one specific drawer, and so are shared across all drawers for this property.</para>
</summary>
<typeparam name="T">The type of the context value to get.</typeparam>
<param name="key">The key of the context value to get.</param>
<returns>The found context.</returns>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyContextContainer.GetPersistent``1(Sirenix.OdinInspector.Editor.OdinDrawer,System.String,``0)">
<summary>
Gets a <see cref="T:Sirenix.OdinInspector.Editor.GlobalPersistentContext`1"/> object and creates a <see cref="T:Sirenix.OdinInspector.Editor.LocalPersistentContext`1"/> object for it.
</summary>
<typeparam name="TValue">The type of the value of the context.</typeparam>
<param name="drawer">The instance of the drawer.</param>
<param name="key">The key for the context.</param>
<param name="defaultValue">The default value for the context.</param>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyContextContainer.GetPersistent``1(Sirenix.OdinInspector.Editor.OdinDrawer,System.String,Sirenix.OdinInspector.Editor.LocalPersistentContext{``0}@)">
<summary>
Gets a <see cref="T:Sirenix.OdinInspector.Editor.GlobalPersistentContext`1"/> object and creates a <see cref="T:Sirenix.OdinInspector.Editor.LocalPersistentContext`1"/> object for it.
Returns <c>true</c> when the <see cref="T:Sirenix.OdinInspector.Editor.GlobalPersistentContext`1"/> is first created. Otherwise <c>false</c>.
</summary>
<typeparam name="TValue">The type of the value of the context.</typeparam>
<param name="drawer">The instance of the drawer.</param>
<param name="key">The key for the context.</param>
<param name="context">The <see cref="T:Sirenix.OdinInspector.Editor.LocalPersistentContext`1"/> object.</param>
<returns>Returns <c>true</c> when the <see cref="T:Sirenix.OdinInspector.Editor.GlobalPersistentContext`1"/> is first created. Otherwise <c>false</c>.</returns>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyContextContainer.SwapContext(Sirenix.OdinInspector.Editor.PropertyContextContainer)">
<summary>
Swaps context values with a given <see cref="T:Sirenix.OdinInspector.Editor.PropertyContextContainer"/>.
</summary>
<param name="otherContext">The context to swap with.</param>
</member>
<member name="T:Sirenix.OdinInspector.Editor.IDefinesGenericMenuItems">
<summary>
An <see cref="T:Sirenix.OdinInspector.Editor.OdinDrawer"/> can implement this interface to indicate that it defines right-click context menu items for properties that it draws.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.IDefinesGenericMenuItems.PopulateGenericMenu(Sirenix.OdinInspector.Editor.InspectorProperty,UnityEditor.GenericMenu)">
<summary>
Method that is invoked when a user has right-clicked a property, and the context menu is being built. The method is invoked in order of drawer priority.
</summary>
<param name="property">The property that has been right-clicked on.</param>
<param name="genericMenu">The generic menu instance that is being built. Add items to this.</param>
</member>
<member name="T:Sirenix.OdinInspector.Editor.AliasGetterSetter`4">
<summary>
A polymorphic alias for getting and setting the values of an <see cref="T:Sirenix.OdinInspector.Editor.IValueGetterSetter`2" />.
</summary>
<typeparam name="TOwner">The type of the owner.</typeparam>
<typeparam name="TValue">The type of the value.</typeparam>
<typeparam name="TPropertyOwner">The type of the property owner.</typeparam>
<typeparam name="TPropertyValue">The type of the property value.</typeparam>
</member>
<member name="P:Sirenix.OdinInspector.Editor.AliasGetterSetter`4.OwnerType">
<summary>
Gets the type of the owner.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.AliasGetterSetter`4.ValueType">
<summary>
Gets the type of the value.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.AliasGetterSetter`4.IsReadonly">
<summary>
Whether the value is readonly.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.AliasGetterSetter`4.#ctor(Sirenix.OdinInspector.Editor.IValueGetterSetter{`2,`3})">
<summary>
Initializes a new instance of the <see cref="T:Sirenix.OdinInspector.Editor.AliasGetterSetter`4"/> class.
</summary>
<param name="aliasedGetterSetter">The information.</param>
<exception cref="T:System.ArgumentNullException">info</exception>
</member>
<member name="M:Sirenix.OdinInspector.Editor.AliasGetterSetter`4.GetValue(System.Object)">
<summary>
Gets the value from a given weakly typed owner.
</summary>
<param name="owner">The weakly typed owner.</param>
<returns>The found value.</returns>
</member>
<member name="M:Sirenix.OdinInspector.Editor.AliasGetterSetter`4.GetValue(`0@)">
<summary>
Gets the value from a given owner.
</summary>
<param name="owner">The owner.</param>
<exception cref="T:System.ArgumentNullException">owner is null</exception>
</member>
<member name="M:Sirenix.OdinInspector.Editor.AliasGetterSetter`4.SetValue(System.Object,System.Object)">
<summary>
Sets the weakly typed value on a given weakly typed owner.
</summary>
<param name="owner">The owner.</param>
<param name="value">The value.</param>
</member>
<member name="M:Sirenix.OdinInspector.Editor.AliasGetterSetter`4.SetValue(`0@,`1)">
<summary>
Sets the value on a given owner.
</summary>
<param name="owner">The owner.</param>
<param name="value">The value.</param>
</member>
<member name="T:Sirenix.OdinInspector.Editor.GetterSetter`2">
<summary>
Responsible for getting and setting values on properties.
</summary>
<typeparam name="TOwner">The type of the owner.</typeparam>
<typeparam name="TValue">The type of the value.</typeparam>
<seealso cref="T:Sirenix.OdinInspector.Editor.IValueGetterSetter`2" />
</member>
<member name="P:Sirenix.OdinInspector.Editor.GetterSetter`2.IsReadonly">
<summary>
Whether the value is readonly.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.GetterSetter`2.OwnerType">
<summary>
Gets the type of the owner.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.GetterSetter`2.ValueType">
<summary>
Gets the type of the value.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.GetterSetter`2.#ctor(System.Reflection.MemberInfo,System.Boolean)">
<summary>
Initializes a new instance of the <see cref="T:Sirenix.OdinInspector.Editor.GetterSetter`2"/> class.
</summary>
<param name="memberInfo">The field member to represent.</param>
<param name="isReadOnly">if set to <c>true</c> [is readonly].</param>
</member>
<member name="M:Sirenix.OdinInspector.Editor.GetterSetter`2.#ctor(Sirenix.Utilities.ValueGetter{`0,`1},Sirenix.Utilities.ValueSetter{`0,`1})">
<summary>
Initializes a new instance of the <see cref="T:Sirenix.OdinInspector.Editor.GetterSetter`2"/> class.
</summary>
<param name="getter">The getter.</param>
<param name="setter">The setter.</param>
<exception cref="T:System.ArgumentNullException">getter</exception>
</member>
<member name="M:Sirenix.OdinInspector.Editor.GetterSetter`2.#ctor(System.Func{`1},System.Action{`1})">
<summary>
Initializes a new instance of the <see cref="T:Sirenix.OdinInspector.Editor.GetterSetter`2"/> class.
</summary>
<param name="getter">The getter.</param>
<param name="setter">The setter.</param>
<exception cref="T:System.ArgumentNullException">getter</exception>
</member>
<member name="M:Sirenix.OdinInspector.Editor.GetterSetter`2.GetValue(`0@)">
<summary>
Gets the value from a given owner.
</summary>
<param name="owner">The owner.</param>
<returns>The found value.</returns>
<exception cref="T:System.ArgumentNullException">owner is null</exception>
</member>
<member name="M:Sirenix.OdinInspector.Editor.GetterSetter`2.GetValue(System.Object)">
<summary>
Gets the value from a given weakly typed owner.
</summary>
<param name="owner">The weakly typed owner.</param>
<returns>The found value.</returns>
</member>
<member name="M:Sirenix.OdinInspector.Editor.GetterSetter`2.SetValue(`0@,`1)">
<summary>
Sets the weakly typed value on a given weakly typed owner.
</summary>
<param name="owner">The owner.</param>
<param name="value">The value.</param>
</member>
<member name="M:Sirenix.OdinInspector.Editor.GetterSetter`2.SetValue(System.Object,System.Object)">
<summary>
Sets the value on a given owner.
</summary>
<param name="owner">The owner.</param>
<param name="value">The value.</param>
</member>
<member name="T:Sirenix.OdinInspector.Editor.InspectorPropertyInfo">
<summary>
Contains meta-data information about a property in the inspector, that can be used to create an actual property instance.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.InspectorPropertyInfo.PropertyName">
<summary>
The name of the property.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.InspectorPropertyInfo.HasBackingMembers">
<summary>
Gets a value indicating whether this InspectorPropertyInfo has any backing members.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.InspectorPropertyInfo.HasSingleBackingMember">
<summary>
Gets a value indicating whether this InspectorPropertyInfo has only a single backing member.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.InspectorPropertyInfo.MemberInfo">
<summary>
The member info of the property. If the property has many member infos, such as if it is a group property, the first member info of <see cref="P:Sirenix.OdinInspector.Editor.InspectorPropertyInfo.MemberInfos"/> is returned.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.InspectorPropertyInfo.PropertyType">
<summary>
Indicates which type of property it is.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.InspectorPropertyInfo.SerializationBackend">
<summary>
The serialization backend for this property.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.InspectorPropertyInfo.TypeOfOwner">
<summary>
The type on which this property is declared.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.InspectorPropertyInfo.TypeOfValue">
<summary>
The base type of the value which this property represents. If there is no value, this will be null.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.InspectorPropertyInfo.IsEditable">
<summary>
Whether this property is editable or not.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.InspectorPropertyInfo.MemberInfos">
<summary>
All member infos of the property. There will only be more than one member if it is an <see cref="!:InspectorPropertyGroupInfo"/>.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.InspectorPropertyInfo.Order">
<summary>
The order value of this property. Properties are (by convention) ordered by ascending order, IE, lower order values are shown first in the inspector. The final actual ordering of properties is decided upon by the property resolver.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.InspectorPropertyInfo.Attributes">
<summary>
The attributes associated with this property.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.InspectorPropertyInfo.IsUnityPropertyOnly">
<summary>
Whether this property only exists as a Unity <see cref="T:UnityEditor.SerializedProperty"/>, and has no associated managed member to represent it.
This case requires some special one-off custom behaviour in a few places.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.InspectorPropertyInfo.ToString">
<summary>
Returns a <see cref="T:System.String" /> that represents this instance.
</summary>
<returns>
A <see cref="T:System.String" /> that represents this instance.
</returns>
</member>
<member name="M:Sirenix.OdinInspector.Editor.InspectorPropertyInfo.GetAttribute``1">
<summary>
Gets the first attribute of a given type on this property.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.InspectorPropertyInfo.GetAttribute``1(System.Collections.Generic.HashSet{System.Attribute})">
<summary>
Gets the first attribute of a given type on this property, which is not contained in a given hashset.
</summary>
<param name="exclude">The attributes to exclude.</param>
</member>
<member name="M:Sirenix.OdinInspector.Editor.InspectorPropertyInfo.GetAttributes``1">
<summary>
Gets all attributes of a given type on the property.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.InspectorPropertyInfo.GetGroupInfos">
<summary>
The <see cref="T:Sirenix.OdinInspector.Editor.InspectorPropertyInfo"/>s of all the individual properties in this group.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.InspectorPropertyInfo.GetMethodDelegate">
<summary>
Gets the property's method delegate, if there is one. Note that this is null if a method property is backed by an actual method member.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.InspectorPropertyInfoUtility.GetDefaultPropertiesForType(Sirenix.OdinInspector.Editor.InspectorProperty,System.Type,System.Boolean)">
<summary>
Gets all <see cref="T:Sirenix.OdinInspector.Editor.InspectorPropertyInfo" />s for a given type.
</summary>
<param name="parentProperty">The parent property.</param>
<param name="type">The type to get infos for.</param>
<param name="includeSpeciallySerializedMembers">if set to true members that are serialized by Odin will be included.</param>
</member>
<member name="M:Sirenix.OdinInspector.Editor.InspectorPropertyInfoUtility.GetPrivateMemberAlias(System.Reflection.MemberInfo,System.String,System.String)">
<summary>
Gets an aliased version of a member, with the declaring type name included in the member name, so that there are no conflicts with private fields and properties with the same name in different classes in the same inheritance hierarchy.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.InspectorProperty">
<summary>
Represents a property in the inspector, and provides the hub for all functionality related to that property.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.InspectorProperty.SerializationRoot">
<summary>
Gets the property which is the ultimate root of this property's serialization.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.InspectorProperty.Name">
<summary>
The name of the property.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.InspectorProperty.NiceName">
<summary>
The nice name of the property, usually as converted by <see cref="M:UnityEditor.ObjectNames.NicifyVariableName(System.String)"/>.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.InspectorProperty.Label">
<summary>
The cached label of the property, usually containing <see cref="P:Sirenix.OdinInspector.Editor.InspectorProperty.NiceName"/>.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.InspectorProperty.Path">
<summary>
The full Odin path of the property. To get the Unity property path, see <see cref="P:Sirenix.OdinInspector.Editor.InspectorProperty.UnityPropertyPath"/>.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.InspectorProperty.Index">
<summary>
The child index of this property.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.InspectorProperty.ChildResolver">
<summary>
Gets the resolver for this property's children.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.InspectorProperty.RecursiveDrawDepth">
<summary>
<para>The current recursive draw depth, incremented for each time that the property has caused itself to be drawn recursively.</para>
<para>Note that this is the <i>current</i> recursion level, not the total amount of recursions so far this frame.</para>
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.InspectorProperty.DrawCount">
<summary>
The amount of times that the property has been drawn so far this frame.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.InspectorProperty.DrawerChainIndex">
<summary>
How deep in the drawer chain the property currently is, in the current drawing session as determined by <see cref="P:Sirenix.OdinInspector.Editor.InspectorProperty.DrawCount"/>.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.InspectorProperty.SupportsPrefabModifications">
<summary>
Whether this property supports having prefab modifications applied or not.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.InspectorProperty.Components">
<summary>
Gets an immutable list of the components attached to the property.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.InspectorProperty.Attributes">
<summary>
Gets an immutable list of processed attributes for the property.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.InspectorProperty.StateUpdaters">
<summary>
Gets an array of the state updaters of the property. Don't change the contents of this array!
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.InspectorProperty.BaseValueEntry">
<summary>
The value entry that represents the base value of this property.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.InspectorProperty.ValueEntry">
<summary>
The value entry that represents the strongly typed value of the property; this is possibly an alias entry in case of polymorphism.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.InspectorProperty.Parent">
<summary>
The parent of the property. If null, this property is a root-level property in the <see cref="T:Sirenix.OdinInspector.Editor.PropertyTree"/>.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.InspectorProperty.Info">
<summary>
The <see cref="T:Sirenix.OdinInspector.Editor.InspectorPropertyInfo"/> of this property.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.InspectorProperty.Tree">
<summary>
The <see cref="T:Sirenix.OdinInspector.Editor.PropertyTree"/> that this property exists in.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.InspectorProperty.Children">
<summary>
The children of this property.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.InspectorProperty.Context">
<summary>
The context container of this property.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.InspectorProperty.LastDrawnValueRect">
<summary>
The last rect that this property was drawn within.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.InspectorProperty.ParentType">
<summary>
The type on which this property is declared. This is the same as <see cref="P:Sirenix.OdinInspector.Editor.InspectorPropertyInfo.TypeOfOwner"/>.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.InspectorProperty.ParentValues">
<summary>
The parent values of this property, by selection index; this represents the values that 'own' this property, on which it is declared.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.InspectorProperty.UnityPropertyPath">
<summary>
<para>The full Unity property path of this property; note that this is merely a converted version of <see cref="P:Sirenix.OdinInspector.Editor.InspectorProperty.Path"/>, and not necessarily a path to an actual Unity property.</para>
<para>In the case of Odin-serialized data, for example, no Unity properties will exist at this path.</para>
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.InspectorProperty.DeepReflectionPath">
<summary>
<para>The full path of this property as used by deep reflection, containing all the necessary information to find this property through reflection only. This is used as the path for prefab modifications.</para>
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.InspectorProperty.PrefabModificationPath">
<summary>
<para>The full path of this property as used by prefab modifications and the deep reflection system, containing all the necessary information to find this property through reflection only.</para>
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.InspectorProperty.State">
<summary>
The PropertyState of the property at the current draw count index.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.InspectorProperty.GetComponent``1">
<summary>
Gets the component of a given type on the property, or null if the property does not have a component of the given type.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.InspectorProperty.MarkSerializationRootDirty">
<summary>
Marks the property's serialization root values dirty if they are derived from UnityEngine.Object.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.InspectorProperty.RecordForUndo(System.String,System.Boolean)">
<summary>
Records the property's serialization root for undo to prepare for undoable changes, with a custom string that includes the property path and Unity object name. If a message is specified, it is included in the custom undo string.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.InspectorProperty.GetAttribute``1">
<summary>
Gets the first attribute of a given type on this property.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.InspectorProperty.GetAttribute``1(System.Collections.Generic.HashSet{System.Attribute})">
<summary>
Gets the first attribute of a given type on this property, which is not contained in a given hashset.
</summary>
<param name="exclude">The attributes to exclude.</param>
</member>
<member name="M:Sirenix.OdinInspector.Editor.InspectorProperty.GetAttributes``1">
<summary>
Gets all attributes of a given type on the property.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.InspectorProperty.ToString">
<summary>
Returns a <see cref="T:System.String" /> that represents this instance.
</summary>
<returns>
A <see cref="T:System.String" /> that represents this instance.
</returns>
</member>
<member name="M:Sirenix.OdinInspector.Editor.InspectorProperty.Draw">
<summary>
Draws this property in the inspector.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.InspectorProperty.Draw(UnityEngine.GUIContent)">
<summary>
Draws this property in the inspector with a given default label. This default label may be overridden by attributes on the drawn property.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.InspectorProperty.PushDraw">
<summary>
Push a draw session. This is used by <see cref="P:Sirenix.OdinInspector.Editor.InspectorProperty.DrawCount"/> and <see cref="P:Sirenix.OdinInspector.Editor.InspectorProperty.RecursiveDrawDepth"/>.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.InspectorProperty.IncrementDrawerChainIndex">
<summary>
Increments the current drawer chain index. This is used by <see cref="P:Sirenix.OdinInspector.Editor.InspectorProperty.DrawerChainIndex"/>.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.InspectorProperty.PopDraw">
<summary>
Pop a draw session. This is used by <see cref="P:Sirenix.OdinInspector.Editor.InspectorProperty.DrawCount"/> and <see cref="P:Sirenix.OdinInspector.Editor.InspectorProperty.RecursiveDrawDepth"/>.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.InspectorProperty.NextProperty(System.Boolean,System.Boolean)">
<summary>
Gets the next property in the <see cref="T:Sirenix.OdinInspector.Editor.PropertyTree"/>, or null if none is found.
</summary>
<param name="includeChildren">Whether to include children or not.</param>
<param name="visibleOnly">Whether to only include visible properties.</param>
</member>
<member name="M:Sirenix.OdinInspector.Editor.InspectorProperty.FindParent(System.Func{Sirenix.OdinInspector.Editor.InspectorProperty,System.Boolean},System.Boolean)">
<summary>
Finds the first parent property that matches a given predicate.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.InspectorProperty.FindChild(System.Func{Sirenix.OdinInspector.Editor.InspectorProperty,System.Boolean},System.Boolean)">
<summary>
Finds the first child recursively, that matches a given predicate.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.InspectorProperty.Update(System.Boolean)">
<summary>
Updates the property. This method resets the temporary context, and updates the value entry and the property children.
</summary>
<param name="forceUpdate">If true, the property will update regardless of whether it has already updated for the current <see cref="P:Sirenix.OdinInspector.Editor.PropertyTree.UpdateID"/>.</param>
</member>
<member name="M:Sirenix.OdinInspector.Editor.InspectorProperty.PopulateGenericMenu(UnityEditor.GenericMenu)">
<summary>
Populates a generic menu with items from all drawers for this property that implement <see cref="T:Sirenix.OdinInspector.Editor.IDefinesGenericMenuItems"/>.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.InspectorProperty.IsChildOf(Sirenix.OdinInspector.Editor.InspectorProperty)">
<summary>
Determines whether this property is the child of another property in the hierarchy.
</summary>
<param name="other">The property to check whether this property is the child of.</param>
<exception cref="T:System.ArgumentNullException">other is null</exception>
</member>
<member name="M:Sirenix.OdinInspector.Editor.InspectorProperty.IsParentOf(Sirenix.OdinInspector.Editor.InspectorProperty)">
<summary>
Determines whether this property is a parent of another property in the hierarchy.
</summary>
<param name="other">The property to check whether this property is the parent of.</param>
<exception cref="T:System.ArgumentNullException">other is null</exception>
</member>
<member name="T:Sirenix.OdinInspector.Editor.PrefabModificationHandler">
<summary>
<para>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.</para>
<para>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.</para>
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.PrefabModificationHandler.TargetPrefabs">
<summary>
The prefabs for each prefab instance represented by the property tree, if any.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.PrefabModificationHandler.HasPrefabs">
<summary>
Whether any of the values the property tree represents are prefab instances.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.PrefabModificationHandler.PrefabPropertyTree">
<summary>
A prefab tree for the prefabs of this property tree's prefab instances, if any exist.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PrefabModificationHandler.GetUnityPropertyModification(Sirenix.Utilities.Editor.StringSlice,System.Int32,System.Boolean@)">
<summary>
Gets the Unity PropertyModification for the property at this path, if there are any.
</summary>
<param name="path">The property path to get the modification for.</param>
<param name="selectionIndex">The index of the tree target to get the modification for.</param>
<param name="childrenHaveModifications">Whether any children of the path have modifications registered.</param>
<returns></returns>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PrefabModificationHandler.GetPrefabModificationType(Sirenix.OdinInspector.Editor.InspectorProperty,System.Boolean)">
<summary>
Gets the Odin prefab modification type of a given property, if any.
</summary>
<param name="property">The property to check.</param>
<param name="forceAutoRegister"></param>
<returns>
The prefab modification type of the property if it has one, otherwise null.
</returns>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PrefabModificationHandler.RegisterPrefabListLengthModification(Sirenix.OdinInspector.Editor.InspectorProperty,System.Int32,System.Int32)">
<summary>
Registers a modification of type <see cref="F:Sirenix.Serialization.PrefabModificationType.ListLength" /> for a given property.
</summary>
<param name="property">The property to register a modification for.</param>
<param name="targetIndex">Selection index of the target to register a modification for.</param>
<param name="newLength">The modified list length.</param>
<exception cref="T:System.ArgumentException">
Property " + property.Path + " does not have a value entry; cannot register prefab modification to this property.
or
newLength cannot be negative!
</exception>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PrefabModificationHandler.RegisterPrefabValueModification(Sirenix.OdinInspector.Editor.InspectorProperty,System.Int32,System.Boolean)">
<summary>
Registers a modification of type <see cref="F:Sirenix.Serialization.PrefabModificationType.Value" /> for a given property.
</summary>
<param name="property">The property to register a modification for.</param>
<param name="targetIndex">Selection index of the target to register a modification for.</param>
<param name="forceImmediate">Whether to force the change to be registered immediately, rather than at the end of frame.</param>
<exception cref="T:System.ArgumentException">Property " + property.Path + " does not have a value entry; cannot register prefab modification to this property.</exception>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PrefabModificationHandler.RegisterPrefabDictionaryDeltaModification(Sirenix.OdinInspector.Editor.InspectorProperty,System.Int32)">
<summary>
Calculates a delta between the current dictionary property and its prefab counterpart, and registers that delta as a <see cref="F:Sirenix.Serialization.PrefabModificationType.Dictionary" /> modification.
</summary>
<param name="property">The property to register a modification for.</param>
<param name="targetIndex">Selection index of the target.</param>
<exception cref="T:System.ArgumentException">Property " + property.Path + " does not have a value entry; cannot register prefab modification to this property.</exception>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PrefabModificationHandler.RegisterPrefabDictionaryRemoveKeyModification(Sirenix.OdinInspector.Editor.InspectorProperty,System.Int32,System.Object)">
<summary>
Adds a remove key modification to the dictionary modifications of a given property.
</summary>
<param name="property">The property to register a modification for.</param>
<param name="targetIndex">Selection index of the target.</param>
<param name="key">The key to be removed.</param>
<exception cref="T:System.ArgumentException">Property " + property.Path + " does not have a value entry; cannot register prefab modification to this property.</exception>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PrefabModificationHandler.RegisterPrefabDictionaryAddKeyModification(Sirenix.OdinInspector.Editor.InspectorProperty,System.Int32,System.Object)">
<summary>
Adds an add key modification to the dictionary modifications of a given property.
</summary>
<param name="property">The property to register a modification for.</param>
<param name="targetIndex">Selection index of the target.</param>
<param name="key">The key to be added.</param>
<exception cref="T:System.ArgumentException">Property " + property.Path + " does not have a value entry; cannot register prefab modification to this property.</exception>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PrefabModificationHandler.RemovePrefabDictionaryModification(Sirenix.OdinInspector.Editor.InspectorProperty,System.Int32,System.Object)">
<summary>
Removes all dictionary modifications on a property for a given dictionary key value.
</summary>
<param name="property">The property to remove a key modification for.</param>
<param name="targetIndex">Selection index of the target.</param>
<param name="key">The key to remove modifications for.</param>
<exception cref="T:System.ArgumentNullException">key</exception>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PrefabModificationHandler.RemovePrefabModification(Sirenix.OdinInspector.Editor.InspectorProperty,System.Int32,Sirenix.Serialization.PrefabModificationType)">
<summary>
Removes all prefab modifications of a given type on a given property.
</summary>
<param name="property">The property to remove modifications for.</param>
<param name="targetIndex">Selection index of the target.</param>
<param name="modificationType">Type of the modification to remove.</param>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PrefabModificationHandler.GetPrefabModifications(System.Int32)">
<summary>
Gets all prefab modifications in this property tree for a given selection index.
</summary>
<param name="targetIndex"></param>
<returns></returns>
</member>
<member name="T:Sirenix.OdinInspector.Editor.PropertyChildren">
<summary>
Represents the children of an <see cref="T:Sirenix.OdinInspector.Editor.InspectorProperty"/>.
</summary>
</member>
<member name="F:Sirenix.OdinInspector.Editor.PropertyChildren.property">
<summary>
The <see cref="T:Sirenix.OdinInspector.Editor.InspectorProperty"/> that this instance handles children for.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.PropertyChildren.Item(System.Int32)">
<summary>
Gets a child by index. This is an alias for <see cref="M:Sirenix.OdinInspector.Editor.PropertyChildren.Get(System.Int32)" />.
</summary>
<param name="index">The index of the child to get.</param>
<returns>The child at the given index.</returns>
</member>
<member name="P:Sirenix.OdinInspector.Editor.PropertyChildren.Item(System.String)">
<summary>
Gets a child by name. This is an alias for <see cref="M:Sirenix.OdinInspector.Editor.PropertyChildren.Get(System.String)" />.
</summary>
<param name="name">The name of the child to get.</param>
<returns>The child, if a child was found; otherwise, null.</returns>
</member>
<member name="P:Sirenix.OdinInspector.Editor.PropertyChildren.Item(Sirenix.Utilities.Editor.StringSlice)">
<summary>
Gets a child by name. This is an alias for <see cref="!:Get(StringSlice)" />.
</summary>
<param name="name">The name of the child to get.</param>
<returns>The child, if a child was found; otherwise, null.</returns>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyChildren.#ctor(Sirenix.OdinInspector.Editor.InspectorProperty)">
<summary>
Initializes a new instance of the <see cref="T:Sirenix.OdinInspector.Editor.PropertyChildren"/> class.
</summary>
<param name="property">The property to handle children for.</param>
<exception cref="T:System.ArgumentNullException">property is null</exception>
</member>
<member name="P:Sirenix.OdinInspector.Editor.PropertyChildren.Count">
<summary>
The number of children on the property.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyChildren.Update">
<summary>
Updates this instance of <see cref="T:Sirenix.OdinInspector.Editor.PropertyChildren"/>.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyChildren.Get(System.String)">
<summary>
Gets a child by name.
</summary>
<param name="name">The name of the child to get.</param>
<returns>The child, if a child was found; otherwise, null.</returns>
<exception cref="T:System.ArgumentNullException">name</exception>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyChildren.Get(Sirenix.Utilities.Editor.StringSlice@)">
<summary>
Gets a child by name.
</summary>
<param name="name">The name of the child to get.</param>
<returns>The child, if a child was found; otherwise, null.</returns>
<exception cref="T:System.ArgumentNullException">name</exception>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyChildren.Get(System.Int32)">
<summary>
Gets a child by index.
</summary>
<param name="index">The index of the child to get.</param>
<returns>
The child at the given index.
</returns>
<exception cref="T:System.IndexOutOfRangeException">The given index was out of range.</exception>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyChildren.GetPath(System.Int32)">
<summary>
Gets the path of the child at a given index.
</summary>
<param name="index">The index to get the path of.</param>
<returns>The path of the child at the given index.</returns>
<exception cref="T:System.IndexOutOfRangeException">The given index was out of range.</exception>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyChildren.Recurse">
<summary>
Returns an IEnumerable that recursively yields all children of the property, depth first.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyChildren.GetExistingChildren">
<summary>
Gets the property's already created children. If the child count is less than or equal to 10000, children are returned in order. If the count is larger than 10000, they are returned in no particular order.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyChildren.GetEnumerator">
<summary>
Gets the enumerator.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyChildren.System#Collections#IEnumerable#GetEnumerator">
<summary>
Gets the enumerator.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.PropertyState">
<summary>
<para>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.</para>
<para>See Odin's tutorials for more information about usage of the state system.</para>
</summary>
</member>
<member name="F:Sirenix.OdinInspector.Editor.PropertyState.LogChanges">
<summary>
If set to true, all state changes for this property will be logged to the console.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.PropertyState.Visible">
<summary>
Whether the property is visible in the inspector.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.PropertyState.VisibleLastLayout">
<summary>
Whether the Visible state was true or not during the last layout event.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.PropertyState.Enabled">
<summary>
Whether the property is enabled in the inspector.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.PropertyState.EnabledLastLayout">
<summary>
Whether the Enabled state was true or not during the last layout event.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.PropertyState.Expanded">
<summary>
Whether the property is expanded in the inspector.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.PropertyState.ExpandedLastLayout">
<summary>
Whether the Expanded state was true or not during the last layout event.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyState.Create``1(System.String,System.Boolean,``0)">
<summary>
Creates a custom state with a given name.
</summary>
<typeparam name="T"></typeparam>
<param name="key"></param>
<param name="persistent"></param>
<param name="defaultValue"></param>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyState.Exists(System.String)">
<summary>
Determines whether a state with the given key exists.
</summary>
<param name="key">The key to check.</param>
<returns>True if the state exists, otherwise, false.</returns>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyState.Exists(System.String,System.Boolean@)">
<summary>
Determines whether a state with the given key exists.
</summary>
<param name="key">The key to check.</param>
<param name="isPersistent">If the state exists, this out parameter will be true if the state is persistent.</param>
<returns>True if the state exists, otherwise, false.</returns>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyState.Exists(System.String,System.Type@)">
<summary>
Determines whether a state with the given key exists.
</summary>
<param name="key">The key to check.</param>
<param name="valueType">If the state exists, this out parameter will contain the type of value that the state contains.</param>
<returns>True if the state exists, otherwise, false.</returns>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyState.Exists(System.String,System.Boolean@,System.Type@)">
<summary>
Determines whether a state with the given key exists.
</summary>
<param name="key">The key to check.</param>
<param name="isPersistent">If the state exists, this out parameter will be true if the state is persistent.</param>
<param name="valueType">If the state exists, this out parameter will contain the type of value that the state contains.</param>
<returns>True if the state exists, otherwise, false.</returns>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyState.Get``1(System.String)">
<summary>
Gets the value of a given state as an instance of type T.
</summary>
<typeparam name="T">The type to get the state value as. An <see cref="T:System.InvalidOperationException"/> will be thrown if the state's value type cannot be assigned to T.</typeparam>
<param name="key">The key of the state to get. An <see cref="T:System.InvalidOperationException"/> will be thrown if a state with the given key does not exist.</param>
<returns>The value of the state.</returns>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyState.GetLastLayout``1(System.String)">
<summary>
Gets the value that a given state contained last layout as an instance of type T.
</summary>
<typeparam name="T">The type to get the state value as. An <see cref="T:System.InvalidOperationException"/> will be thrown if the state's value type cannot be assigned to T.</typeparam>
<param name="key">The key of the state to get. An <see cref="T:System.InvalidOperationException"/> will be thrown if a state with the given key does not exist.</param>
<returns>The value of the state during the last layout event.</returns>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyState.Set``1(System.String,``0)">
<summary>
Sets the value of a given state to a given value.
</summary>
<typeparam name="T">The type to set the state value as. An <see cref="T:System.InvalidOperationException"/> will be thrown if T cannot be assigned to the state's value type.</typeparam>
<param name="key">The key of the state to set the value of. An <see cref="T:System.InvalidOperationException"/> will be thrown if a state with the given key does not exist.</param>
<param name="value">The value to set.</param>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyState.CleanForCachedReuse">
<summary>
Cleans the property state and prepares it for cached reuse of its containing PropertyTree. This will also reset the state.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyState.Reset">
<summary>
Resets all states to their default values. Persistent states will be updated to their persistent cached value if one exists.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.PropertyTree">
<summary>
<para>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.</para>
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.PropertyTree.OnPropertyValueChangedDelegate">
<summary>
Delegate for on property value changed callback.
</summary>
</member>
<member name="F:Sirenix.OdinInspector.Editor.PropertyTree.TreeIsSetupForIMGUIDrawing_TEMP_INTERNAL">
<summary>
This will be replaced by an IMGUIDrawingComponent in patch 3.2.
</summary>
</member>
<member name="F:Sirenix.OdinInspector.Editor.PropertyTree.ComponentProviders">
<summary>
The component providers that create components for each property in the tree. If you change this list after the tree has been used, you should call tree.RootProperty.RefreshSetup() to make the changes update properly throughout the tree.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.PropertyTree.UnitySerializedObject">
<summary>
The <see cref="T:UnityEditor.SerializedObject"/> that this tree represents, if the tree was created for a <see cref="T:UnityEditor.SerializedObject"/>.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.PropertyTree.UpdateID">
<summary>
The current update ID of the tree. This is incremented once, each update, and is used by <see cref="M:Sirenix.OdinInspector.Editor.InspectorProperty.Update(System.Boolean)"/> to avoid updating multiple times in the same update round.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.PropertyTree.TargetType">
<summary>
The type of the values that the property tree represents.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.PropertyTree.WeakTargets">
<summary>
The actual values that the property tree represents.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.PropertyTree.RootPropertyCount">
<summary>
The number of root properties in the tree.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.PropertyTree.PrefabModificationHandler">
<summary>
The prefab modification handler of the tree.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.PropertyTree.IncludesSpeciallySerializedMembers">
<summary>
Whether this property tree also represents members that are specially serialized by Odin.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.PropertyTree.DrawMonoScriptObjectField">
<summary>
Gets a value indicating whether or not to draw the mono script object field at the top of the property tree.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.PropertyTree.IsStatic">
<summary>
Gets a value indicating whether or not the PropertyTree is inspecting a static type.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.PropertyTree.SerializationBackend">
<summary>
The serialization backend used to determine how to draw this property tree. Set this to control.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.PropertyTree.AttributeProcessorLocator">
<summary>
Gets or sets the <see cref="T:Sirenix.OdinInspector.Editor.OdinAttributeProcessorLocator"/> for the PropertyTree.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.PropertyTree.PropertyResolverLocator">
<summary>
Gets or sets the <see cref="T:Sirenix.OdinInspector.Editor.OdinPropertyResolverLocator"/> for the PropertyTree.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.PropertyTree.DrawerChainResolver">
<summary>
Gets or sets the <see cref="T:Sirenix.OdinInspector.Editor.DrawerChainResolver"/> for the PropertyTree.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.PropertyTree.StateUpdaterLocator">
<summary>
Gets or sets the <see cref="T:Sirenix.OdinInspector.Editor.StateUpdaterLocator"/> for the PropertyTree.
</summary>
</member>
<member name="E:Sirenix.OdinInspector.Editor.PropertyTree.OnUndoRedoPerformed">
<summary>
An event that is invoked whenever an undo or a redo is performed in the inspector.
The advantage of using this event on a property tree instance instead of
<see cref="F:UnityEditor.Undo.undoRedoPerformed"/> is that this event will be desubscribed from
<see cref="F:UnityEditor.Undo.undoRedoPerformed"/> when the selection changes and the property
tree is no longer being used, allowing the GC to collect the property tree.
</summary>
</member>
<member name="E:Sirenix.OdinInspector.Editor.PropertyTree.OnPropertyValueChanged">
<summary>
This event is invoked whenever the value of any property in the entire property tree is changed through the property system.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyTree.#ctor">
<summary>
Creates a new <see cref="T:Sirenix.OdinInspector.Editor.PropertyTree" /> for all target values of a <see cref="T:UnityEditor.SerializedObject" />.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.PropertyTree.RootProperty">
<summary>
Gets the root property of the tree.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.PropertyTree.SecretRootProperty">
<summary>
Gets the secret root property of the tree, which hosts the property resolver used to resolve the "actual" root properties of the tree.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyTree.RegisterPropertyDirty(Sirenix.OdinInspector.Editor.InspectorProperty)">
<summary>
Registers that a given property is dirty and needs its changes to be applied at the end of the current frame.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyTree.DelayAction(System.Action)">
<summary>
Schedules a delegate to be invoked at the end of the current GUI frame.
</summary>
<param name="action">The action delegate to be delayed.</param>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyTree.DelayActionUntilRepaint(System.Action)">
<summary>
Schedules a delegate to be invoked at the end of the next Repaint GUI frame.
</summary>
<param name="action">The action to be delayed.</param>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyTree.EnumerateTree(System.Boolean,System.Boolean)">
<summary>
Enumerates over the properties of the tree.
</summary>
<param name="includeChildren">Whether to include children of the root properties or not. If set to true, every property in the entire tree will be enumerated.</param>
<param name="onlyVisible">Whether to only include visible properties. Properties whose parents are invisible are considered invisible.</param>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyTree.GetPropertyAtPath(System.String)">
<summary>
Gets the property at the given path. Note that this is the path found in <see cref="P:Sirenix.OdinInspector.Editor.InspectorProperty.Path" />, not the Unity path.
</summary>
<param name="path">The path of the property to get.</param>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyTree.GetPropertyAtPath(System.String,Sirenix.OdinInspector.Editor.InspectorProperty@)">
<summary>
Gets the property at the given path. Note that this is the path found in <see cref="P:Sirenix.OdinInspector.Editor.InspectorProperty.Path" />, not the Unity path.
</summary>
<param name="path">The path of the property to get.</param>
<param name="closestProperty"></param>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyTree.GetPropertyAtUnityPath(System.String)">
<summary>
Gets the property at the given Unity path.
</summary>
<param name="path">The Unity path of the property to get.</param>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyTree.GetPropertyAtUnityPath(System.String,Sirenix.OdinInspector.Editor.InspectorProperty@)">
<summary>
Gets the property at the given Unity path.
</summary>
<param name="path">The Unity path of the property to get.</param>
<param name="closestProperty"></param>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyTree.GetPropertyAtDeepReflectionPath(System.String)">
<summary>
Gets the property at the given deep reflection path.
</summary>
<param name="path">The deep reflection path of the property to get.</param>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyTree.GetPropertyAtPrefabModificationPath(System.String)">
<summary>
Gets the property at the given Odin prefab modification path.
</summary>
<param name="path">The prefab modification path of the property to get.</param>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyTree.GetPropertyAtPrefabModificationPath(System.String,Sirenix.OdinInspector.Editor.InspectorProperty@)">
<summary>
Gets the property at the given Odin prefab modification path.
</summary>
<param name="path">The prefab modification path of the property to get.</param>
<param name="closestProperty"></param>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyTree.Draw(System.Boolean)">
<summary>
<para>Draw the property tree, and handles management of undo, as well as marking scenes and drawn assets dirty.</para>
<para>
This is a shorthand for calling
<see cref="M:Sirenix.OdinInspector.Editor.InspectorUtilities.BeginDrawPropertyTree(Sirenix.OdinInspector.Editor.PropertyTree,System.Boolean)"/>,
<see cref="M:Sirenix.OdinInspector.Editor.InspectorUtilities.DrawPropertiesInTree(Sirenix.OdinInspector.Editor.PropertyTree)"/> and .
<see cref="M:Sirenix.OdinInspector.Editor.InspectorUtilities.EndDrawPropertyTree(Sirenix.OdinInspector.Editor.PropertyTree)"/>.
</para>
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyTree.DrawSearch">
<summary>
<para>Draws a search bar for the property tree, and draws the search results if the search bar is used.</para>
<para>If this method returns true, the property tree should generally not be drawn normally afterwards.</para>
<para>Note that this method will throw exceptions if the property tree is not set up to be searchable; for that, see <see cref="M:Sirenix.OdinInspector.Editor.PropertyTree.SetSearchable(System.Boolean,Sirenix.OdinInspector.SearchableAttribute)"/>.</para>
</summary>
<returns>True if the property tree is being searched and is currently drawing its search results, otherwise false.</returns>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyTree.GetUnityPropertyForPath(System.String)">
<summary>
Gets a Unity property for the given Odin or Unity path. If there is no <see cref="T:UnityEditor.SerializedObject" /> for this property tree, or no such property is found in the <see cref="T:UnityEditor.SerializedObject" />, a property will be emitted using <see cref="T:Sirenix.OdinInspector.Editor.UnityPropertyEmitter" />.
</summary>
<param name="path">The Odin or Unity path to the property to get.</param>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyTree.GetUnityPropertyForPath(System.String,System.Reflection.FieldInfo@)">
<summary>
Gets a Unity property for the given Odin or Unity path. If there is no <see cref="T:UnityEditor.SerializedObject" /> for this property tree, or no such property is found in the <see cref="T:UnityEditor.SerializedObject" />, a property will be emitted using <see cref="T:Sirenix.OdinInspector.Editor.UnityPropertyEmitter" />.
</summary>
<param name="path">The Odin or Unity path to the property to get.</param>
<param name="backingField">The backing field of the Unity property.</param>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyTree.ObjectIsReferenced(System.Object,System.String@)">
<summary>
Checks whether a given object instance is referenced anywhere in the tree, and if it is, gives the path of the first time the object reference was encountered as an out parameter.
</summary>
<param name="value">The reference value to check.</param>
<param name="referencePath">The first found path of the object.</param>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyTree.GetReferenceCount(System.Object)">
<summary>
Gets the number of references to a given object instance in this tree.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyTree.UpdateTree">
<summary>
Updates all properties in the entire tree, and validates the prefab state of the tree, if applicable.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyTree.ReplaceAllReferences(System.Object,System.Object)">
<summary>
Replaces all occurrences of a value with another value, in the entire tree.
</summary>
<param name="from">The value to find all instances of.</param>
<param name="to">The value to replace the found values with.</param>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyTree.GetRootProperty(System.Int32)">
<summary>
Gets the root tree property at a given index.
</summary>
<param name="index">The index of the property to get.</param>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyTree.InvokeDelayedActions">
<summary>
Invokes the actions that have been delayed using <see cref="M:Sirenix.OdinInspector.Editor.PropertyTree.DelayAction(System.Action)"/> and <see cref="M:Sirenix.OdinInspector.Editor.PropertyTree.DelayActionUntilRepaint(System.Action)"/>.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyTree.ApplyChanges">
<summary>
Applies all changes made with properties to the inspected target tree values, and marks all changed Unity objects dirty.
</summary>
<returns>true if any values were changed, otherwise false</returns>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyTree.InvokeOnValidate">
<summary>
Invokes the OnValidate method on the property tree's targets if they are derived from <see cref="T:UnityEngine.Object"/> and have the method defined.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyTree.ForceRegisterObjectReference(System.Object,Sirenix.OdinInspector.Editor.InspectorProperty)">
<summary>
Registers an object reference to a given path; this is used to ensure that objects are always registered after having been encountered once.
</summary>
<param name="reference">The referenced object.</param>
<param name="property">The property that contains the reference.</param>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyTree.CreateStatic(System.Type)">
<summary>
Creates a PropertyTree to inspect the static values of the given type.
</summary>
<param name="type">The type to inspect.</param>
<returns>A PropertyTree instance for inspecting the type.</returns>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyTree.Create(System.Object)">
<summary>
Creates a new <see cref="T:Sirenix.OdinInspector.Editor.PropertyTree" /> for a given target value.
</summary>
<param name="target">The target to create a tree for.</param>
<exception cref="T:System.ArgumentNullException">target is null</exception>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyTree.Create(System.Object,Sirenix.OdinInspector.Editor.SerializationBackend)">
<summary>
Creates a new <see cref="T:Sirenix.OdinInspector.Editor.PropertyTree" /> for a given target value.
</summary>
<param name="target">The target to create a tree for.</param>
<param name="backend">The serialization backend to use for the tree root.</param>
<exception cref="T:System.ArgumentNullException">target is null</exception>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyTree.Create(System.Object[])">
<summary>
<para>Creates a new <see cref="T:Sirenix.OdinInspector.Editor.PropertyTree" /> for a set of given target values.</para>
<para>Note that the targets all need to be of the same type.</para>
</summary>
<param name="targets">The targets to create a tree for.</param>
<exception cref="T:System.ArgumentNullException">targets is null</exception>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyTree.Create(UnityEditor.SerializedObject)">
<summary>
Creates a new <see cref="T:Sirenix.OdinInspector.Editor.PropertyTree" /> for all target values of a <see cref="T:UnityEditor.SerializedObject" />.
</summary>
<param name="serializedObject">The serialized object to create a tree for.</param>
<exception cref="T:System.ArgumentNullException">serializedObject is null</exception>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyTree.Create(UnityEditor.SerializedObject,Sirenix.OdinInspector.Editor.SerializationBackend)">
<summary>
Creates a new <see cref="T:Sirenix.OdinInspector.Editor.PropertyTree" /> for all target values of a <see cref="T:UnityEditor.SerializedObject" />.
</summary>
<param name="serializedObject">The serialized object to create a tree for.</param>
<exception cref="T:System.ArgumentNullException">serializedObject is null</exception>
<param name="backend">The serialization backend to use for the tree root.</param>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyTree.Create(System.Collections.IList)">
<summary>
<para>Creates a new <see cref="T:Sirenix.OdinInspector.Editor.PropertyTree"/> for a set of given target values.</para>
<para>Note that the targets all need to be of the same type.</para>
</summary>
<param name="targets">The targets to create a tree for.</param>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyTree.Create(System.Collections.IList,Sirenix.OdinInspector.Editor.SerializationBackend)">
<summary>
<para>Creates a new <see cref="T:Sirenix.OdinInspector.Editor.PropertyTree"/> for a set of given target values.</para>
<para>Note that the targets all need to be of the same type.</para>
</summary>
<param name="targets">The targets to create a tree for.</param>
<param name="backend">The serialization backend to use for the tree root.</param>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyTree.Create(System.Collections.IList,UnityEditor.SerializedObject)">
<summary>
<para>Creates a new <see cref="T:Sirenix.OdinInspector.Editor.PropertyTree"/> for a set of given target values, represented by a given <see cref="T:UnityEditor.SerializedObject"/>.</para>
<para>Note that the targets all need to be of the same type.</para>
</summary>
<param name="targets">The targets to create a tree for.</param>
<param name="serializedObject">The serialized object to create a tree for. Note that the target values of the given <see cref="T:UnityEditor.SerializedObject"/> must be the same values given in the targets parameter.</param>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyTree.Create(System.Collections.IList,UnityEditor.SerializedObject,Sirenix.OdinInspector.Editor.SerializationBackend)">
<summary>
<para>Creates a new <see cref="T:Sirenix.OdinInspector.Editor.PropertyTree"/> for a set of given target values, represented by a given <see cref="T:UnityEditor.SerializedObject"/>.</para>
<para>Note that the targets all need to be of the same type.</para>
</summary>
<param name="targets">The targets to create a tree for.</param>
<param name="serializedObject">The serialized object to create a tree for. Note that the target values of the given <see cref="T:UnityEditor.SerializedObject"/> must be the same values given in the targets parameter.</param>
<param name="backend">The serialization backend to use for the tree root.</param>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyTree.SetSearchable(System.Boolean,Sirenix.OdinInspector.SearchableAttribute)">
<summary>
<para>Sets whether the property tree should be searchable or not, and allows the passing in of a custom SearchableAttribute instance to configure the search.</para>
</summary>
<param name="searchable">Whether the tree should be set to be searchable or not.</param>
<param name="config">If the tree is set to be searchable, then if this parameter is not null, it will be used to configure the property tree search. If the parameter is null, the SearchableAttribute on the tree's <see cref="P:Sirenix.OdinInspector.Editor.PropertyTree.RootProperty"/> will be used. If that property has no such attribute, then default search settings will be applied.</param>
</member>
<member name="T:Sirenix.OdinInspector.Editor.PropertyTree`1">
<summary>
<para>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.</para>
<para>This class also handles management of prefab modifications.</para>
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.PropertyTree`1.RootProperty">
<summary>
Gets the root property of the tree.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.PropertyTree`1.SecretRootProperty">
<summary>
Gets the secret root property of the PropertyTree.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.PropertyTree`1.PrefabModificationHandler">
<summary>
Gets the <see cref="F:Sirenix.OdinInspector.Editor.PropertyTree`1.prefabModificationHandler"/> for the PropertyTree.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.PropertyTree`1.UpdateID">
<summary>
The current update ID of the tree. This is incremented once, each update, and is used by <see cref="M:Sirenix.OdinInspector.Editor.InspectorProperty.Update(System.Boolean)" /> to avoid updating multiple times in the same update round.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.PropertyTree`1.UnitySerializedObject">
<summary>
The <see cref="T:UnityEditor.SerializedObject" /> that this tree represents, if the tree was created for a <see cref="T:UnityEditor.SerializedObject" />.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.PropertyTree`1.TargetType">
<summary>
The type of the values that the property tree represents.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.PropertyTree`1.Targets">
<summary>
The strongly types actual values that the property tree represents.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.PropertyTree`1.WeakTargets">
<summary>
The weakly types actual values that the property tree represents.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.PropertyTree`1.RootPropertyCount">
<summary>
The number of root properties in the tree.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.PropertyTree`1.IncludesSpeciallySerializedMembers">
<summary>
Whether this property tree also represents members that are specially serialized by Odin.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyTree`1.#ctor">
<summary>
Initializes a new instance of the <see cref="T:Sirenix.OdinInspector.Editor.PropertyTree`1"/> class, inspecting only the target (<see cref="!:T"/>) type's static members.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyTree`1.#ctor(UnityEditor.SerializedObject)">
<summary>
Initializes a new instance of the <see cref="T:Sirenix.OdinInspector.Editor.PropertyTree`1"/> class.
</summary>
<param name="serializedObject">The serialized object to represent.</param>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyTree`1.#ctor(`0[])">
<summary>
Initializes a new instance of the <see cref="T:Sirenix.OdinInspector.Editor.PropertyTree`1"/> class.
</summary>
<param name="targets">The targets to represent.</param>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyTree`1.#ctor(`0[],UnityEditor.SerializedObject)">
<summary>
Initializes a new instance of the <see cref="T:Sirenix.OdinInspector.Editor.PropertyTree`1"/> class.
</summary>
<param name="targets">The targets to represent.</param>
<param name="serializedObject">The serialized object to represent. Note that the target values of the given <see cref="T:UnityEditor.SerializedObject"/> must be the same values given in the targets parameter.</param>
<exception cref="T:System.ArgumentNullException">targets is null</exception>
<exception cref="T:System.ArgumentException">
There must be at least one target.
or
A given target is a null value.
</exception>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyTree`1.#ctor(`0[],UnityEditor.SerializedObject,Sirenix.OdinInspector.Editor.SerializationBackend)">
<summary>
Initializes a new instance of the <see cref="T:Sirenix.OdinInspector.Editor.PropertyTree`1"/> class.
</summary>
<param name="targets">The targets to represent.</param>
<param name="serializedObject">The serialized object to represent. Note that the target values of the given <see cref="T:UnityEditor.SerializedObject"/> must be the same values given in the targets parameter.</param>
<param name="backend">The serialization backend to use for the tree root.</param>
<exception cref="T:System.ArgumentNullException">targets is null</exception>
<exception cref="T:System.ArgumentException">
There must be at least one target.
or
A given target is a null value.
</exception>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyTree`1.ApplyChanges">
<summary>
Applies all changes made with properties to the inspected target tree values.
</summary>
<returns>
true if any values were changed, otherwise false
</returns>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyTree`1.RegisterPropertyDirty(Sirenix.OdinInspector.Editor.InspectorProperty)">
<summary>
Registers that a given property is dirty and needs its changes to be applied at the end of the current frame.
</summary>
<param name="property"></param>
<exception cref="T:System.NotImplementedException"></exception>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyTree`1.UpdateTree">
<summary>
Updates all properties in the entire tree, and validates the prefab state of the tree, if applicable.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyTree`1.ObjectIsReferenced(System.Object,System.String@)">
<summary>
Checks whether a given object instance is referenced anywhere in the tree, and if it is, gives the path of the first time the object reference was encountered as an out parameter.
</summary>
<param name="value">The reference value to check.</param>
<param name="referencePath">The first found path of the object.</param>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyTree`1.GetReferenceCount(System.Object)">
<summary>
Gets the number of references to a given object instance in this tree.
</summary>
<param name="reference"></param>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyTree`1.GetPropertyAtPath(System.String)">
<summary>
Gets the property at the given path. Note that this is the path found in <see cref="P:Sirenix.OdinInspector.Editor.InspectorProperty.Path" />, not the Unity path.
</summary>
<param name="path">The path of the property to get.</param>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyTree`1.GetPropertyAtPath(System.String,Sirenix.OdinInspector.Editor.InspectorProperty@)">
<summary>
Gets the property at the given path. Note that this is the path found in <see cref="P:Sirenix.OdinInspector.Editor.InspectorProperty.Path" />, not the Unity path.
</summary>
<param name="path">The path of the property to get.</param>
<param name="closestProperty"></param>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyTree`1.GetPropertyAtUnityPath(System.String)">
<summary>
Finds the property at the specified unity path.
</summary>
<param name="path">The unity path for the property.</param>
<returns>The property found at the path.</returns>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyTree`1.GetPropertyAtUnityPath(System.String,Sirenix.OdinInspector.Editor.InspectorProperty@)">
<summary>
Finds the property at the specified unity path.
</summary>
<param name="path">The unity path for the property.</param>
<param name="closestProperty"></param>
<returns>The property found at the path.</returns>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyTree`1.GetPropertyAtPrefabModificationPath(System.String)">
<summary>
Finds the property at the specified modification path.
</summary>
<param name="path">The prefab modification path for the property.</param>
<returns>The property found at the path.</returns>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyTree`1.GetPropertyAtPrefabModificationPath(System.String,Sirenix.OdinInspector.Editor.InspectorProperty@)">
<summary>
Finds the property at the specified modification path.
</summary>
<param name="path">The prefab modification path for the property.</param>
<param name="closestProperty"></param>
<returns>The property found at the path.</returns>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyTree`1.GetUnityPropertyForPath(System.String,System.Reflection.FieldInfo@)">
<summary>
Gets a Unity property for the given Odin or Unity path. If there is no <see cref="T:UnityEditor.SerializedObject" /> for this property tree, or no such property is found in the <see cref="T:UnityEditor.SerializedObject" />, a property will be emitted using <see cref="T:Sirenix.OdinInspector.Editor.UnityPropertyEmitter" />.
</summary>
<param name="path">The Odin or Unity path to the property to get.</param>
<param name="backingField">The backing field of the Unity property.</param>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyTree`1.EnumerateTree(System.Boolean,System.Boolean)">
<summary>
Enumerates over the properties of the tree. WARNING: For tree that have large targets with lots of data, this may involve massive amounts of work as the full tree structure is resolved. USE THIS METHOD SPARINGLY AND ONLY WHEN ABSOLUTELY NECESSARY!
</summary>
<param name="includeChildren">Whether to include children of the root properties or not. If set to true, every property in the entire tree will be enumerated.</param>
/// <param name="onlyVisible">Whether to only include visible properties. Properties whose parents are invisible are considered invisible.</param>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyTree`1.ReplaceAllReferences(System.Object,System.Object)">
<summary>
Replaces all occurrences of a value with another value, in the entire tree.
</summary>
<param name="from">The value to find all instances of.</param>
<param name="to">The value to replace the found values with.</param>
<exception cref="T:System.ArgumentNullException"></exception>
<exception cref="T:System.ArgumentException">The value to replace with must either be null or be the same type as the value to replace (" + from.GetType().Name + ").</exception>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyTree`1.GetRootProperty(System.Int32)">
<summary>
Gets the root tree property at a given index.
</summary>
<param name="index">The index of the property to get.</param>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyTree`1.DelayAction(System.Action)">
<summary>
Schedules a delegate to be invoked at the end of the current GUI frame.
</summary>
<param name="action">The action delegate to be delayed.</param>
<exception cref="T:System.ArgumentNullException">action</exception>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyTree`1.DelayActionUntilRepaint(System.Action)">
<summary>
Schedules a delegate to be invoked at the end of the next Repaint GUI frame.
</summary>
<param name="action">The action to be delayed.</param>
<exception cref="T:System.ArgumentNullException">action</exception>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyTree`1.InvokeDelayedActions">
<summary>
Invokes the actions that have been delayed using <see cref="M:Sirenix.OdinInspector.Editor.PropertyTree`1.DelayAction(System.Action)" /> and <see cref="M:Sirenix.OdinInspector.Editor.PropertyTree`1.DelayActionUntilRepaint(System.Action)" />.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.PropertyType">
<summary>
Enumeration describing the different types of properties that exist.
</summary>
</member>
<member name="F:Sirenix.OdinInspector.Editor.PropertyType.Value">
<summary>
Property represents a value.
</summary>
</member>
<member name="F:Sirenix.OdinInspector.Editor.PropertyType.Method">
<summary>
Property represents a method.
</summary>
</member>
<member name="F:Sirenix.OdinInspector.Editor.PropertyType.Group">
<summary>
Property represents a named group of properties.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.PropertyValueState">
<summary>
Enumeration for designating whether a <see cref="T:Sirenix.OdinInspector.Editor.PropertyValueEntry"/> has a special state,.
</summary>
</member>
<member name="F:Sirenix.OdinInspector.Editor.PropertyValueState.None">
<summary>
The value entry has no special state.
</summary>
</member>
<member name="F:Sirenix.OdinInspector.Editor.PropertyValueState.Reference">
<summary>
The property is a reference to another property. Get the path of the referenced property from <see cref="P:Sirenix.OdinInspector.Editor.PropertyValueEntry.TargetReferencePath"/>.
</summary>
</member>
<member name="F:Sirenix.OdinInspector.Editor.PropertyValueState.NullReference">
<summary>
The value entry is a null value.
</summary>
</member>
<member name="F:Sirenix.OdinInspector.Editor.PropertyValueState.PrimitiveValueConflict">
<summary>
<para>The value entry has a primitive value conflict across selected indices.</para>
<para>A primitive value conflict is when primitive values, such a strings or floats, differ.</para>
</summary>
</member>
<member name="F:Sirenix.OdinInspector.Editor.PropertyValueState.ReferenceValueConflict">
<summary>
<para>The value entry has a reference value conflict across selected indices.</para>
<para>A reference value conflict is when the types of reference type values differ, or when some values are null while others are not.</para>
</summary>
</member>
<member name="F:Sirenix.OdinInspector.Editor.PropertyValueState.ReferencePathConflict">
<summary>
<para>The value entry has a reference path conflict across selected indices.</para>
<para>A reference path conflict is when the property consists of references to many conflicting paths. Use <see cref="M:Sirenix.OdinInspector.Editor.PropertyTree.ObjectIsReferenced(System.Object,System.String@)"/> to get paths to all referenced objects.</para>
</summary>
</member>
<member name="F:Sirenix.OdinInspector.Editor.PropertyValueState.CollectionLengthConflict">
<summary>
<para>The value entry has a collection length conflict across selected indices.</para>
<para>A collection length conflict is when the property represents multiple parallel collections, and their lengths differ.</para>
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Resolvers.InheritAttributeAttributesAttributeProcessor">
<summary>
This attribute processor will take any attribute already applied to the property with the <see cref="T:Sirenix.OdinInspector.IncludeMyAttributesAttribute"/> applied to,
and take all attributes applied to the attribute (except any <see cref="T:System.AttributeUsageAttribute"/>) and add to them to the property.
This allows for adding attributes to attributes in the property system.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Resolvers.InheritAttributeAttributesAttributeProcessor.ProcessChildMemberAttributes(Sirenix.OdinInspector.Editor.InspectorProperty,System.Reflection.MemberInfo,System.Collections.Generic.List{System.Attribute})">
<summary>
Looks for attributes in the attributes list with a <see cref="T:Sirenix.OdinInspector.IncludeMyAttributesAttribute"/> applied, and adds the attribute from those attributes to the property.
</summary>
<param name="parentProperty">The parent of the member.</param>
<param name="member">The member that is being processed.</param>
<param name="attributes">The list of attributes currently applied to the property.</param>
</member>
<member name="T:Sirenix.OdinInspector.Editor.MemberDefinedAttributeProcessor">
<summary>
Finds all attributes attached to the specified member and adds to them to attribute list.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.MemberDefinedAttributeProcessor.CanProcessSelfAttributes(Sirenix.OdinInspector.Editor.InspectorProperty)">
<summary>
This attribute processor can only process for members.
</summary>
<param name="property">The property to process.</param>
<returns><c>false</c>.</returns>
</member>
<member name="M:Sirenix.OdinInspector.Editor.MemberDefinedAttributeProcessor.ProcessChildMemberAttributes(Sirenix.OdinInspector.Editor.InspectorProperty,System.Reflection.MemberInfo,System.Collections.Generic.List{System.Attribute})">
<summary>
Finds all attributes attached to the specified member and adds to them to the attributes list.
</summary>
<param name="parentProperty">The parent property of the specified member.</param>
<param name="member">The member to process attributes for.</param>
<param name="attributes">The current attributes applied to the property.</param>
</member>
<member name="T:Sirenix.OdinInspector.Editor.OdinAttributeProcessor">
<summary>
Attribute processor that can add, change and remove attributes from a property.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinAttributeProcessor.Create(System.Type)">
<summary>
Instanciates an OdinAttributeProcessor instance of the specified type.
</summary>
<param name="processorType">The type of processor to instanciate. The type must inherit from <see cref="T:Sirenix.OdinInspector.Editor.OdinAttributeProcessor"/>.</param>
<returns>A new instance of the specified type.</returns>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinAttributeProcessor.CanProcessChildMemberAttributes(Sirenix.OdinInspector.Editor.InspectorProperty,System.Reflection.MemberInfo)">
<summary>
Checks if the processor can process attributes for the specified member.
</summary>
<param name="parentProperty">The parent property of the member.</param>
<param name="member">The member to be processed.</param>
<returns><c>true</c> if the processor can process for the specified member. Otherwise <c>false</c>.</returns>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinAttributeProcessor.CanProcessSelfAttributes(Sirenix.OdinInspector.Editor.InspectorProperty)">
<summary>
Checks if the processor can process attributes for the specified property.
</summary>
<param name="property">The property to process.</param>
<returns><c>true</c> if the processor can process attributes for the specified property. Otherwise <c>false</c>.</returns>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinAttributeProcessor.ProcessChildMemberAttributes(Sirenix.OdinInspector.Editor.InspectorProperty,System.Reflection.MemberInfo,System.Collections.Generic.List{System.Attribute})">
<summary>
Processes attributes for the specified member.
</summary>
<param name="parentProperty">The parent property of the specified member.</param>
<param name="member">The member to process attributes for.</param>
<param name="attributes">The current attributes applied to the property.</param>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinAttributeProcessor.ProcessSelfAttributes(Sirenix.OdinInspector.Editor.InspectorProperty,System.Collections.Generic.List{System.Attribute})">
<summary>
Processes attributes for the specified property.
</summary>
<param name="property">The property to process attributes for.</param>
<param name="attributes">The current attributes applied to the property.</param>
</member>
<member name="T:Sirenix.OdinInspector.Editor.OdinAttributeProcessor`1">
<summary>
Attribute processor that can add, change and remove attributes from a property.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.TypeDefinitionAttributeProcessor">
<summary>
Find attributes attached to the type definition of a property and adds to them to attribute list.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.TypeDefinitionAttributeProcessor.CanProcessChildMemberAttributes(Sirenix.OdinInspector.Editor.InspectorProperty,System.Reflection.MemberInfo)">
<summary>
This attribute processor can only process for properties.
</summary>
<param name="parentProperty">The parent of the specified member.</param>
<param name="member">The member to process.</param>
<returns><c>false</c>.</returns>
</member>
<member name="M:Sirenix.OdinInspector.Editor.TypeDefinitionAttributeProcessor.CanProcessSelfAttributes(Sirenix.OdinInspector.Editor.InspectorProperty)">
<summary>
This attribute processor can only process for properties with an attached value entry.
</summary>
<param name="property">The property to process.</param>
<returns><c>true</c> if the specified property has a value entry. Otherwise <c>false</c>.</returns>
</member>
<member name="M:Sirenix.OdinInspector.Editor.TypeDefinitionAttributeProcessor.ProcessSelfAttributes(Sirenix.OdinInspector.Editor.InspectorProperty,System.Collections.Generic.List{System.Attribute})">
<summary>
Finds all attributes attached to the type and base types of the specified property value and adds them to the attribute list.
</summary>
<param name="property">The property to process.</param>
<param name="attributes">The list of attributes for the property.</param>
</member>
<member name="T:Sirenix.OdinInspector.Editor.DefaultOdinAttributeProcessorLocator">
<summary>
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 <see cref="T:Sirenix.OdinInspector.Editor.OdinDontRegisterAttribute"/>.
</summary>
</member>
<member name="F:Sirenix.OdinInspector.Editor.DefaultOdinAttributeProcessorLocator.Instance">
<summary>
Singleton instance of the DefaultOdinAttributeProcessorLocator class.
</summary>
</member>
<member name="F:Sirenix.OdinInspector.Editor.DefaultOdinAttributeProcessorLocator.SearchIndex">
<summary>
Type search index used for matching <see cref="T:Sirenix.OdinInspector.Editor.OdinAttributeProcessor"/> to properties.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.DefaultOdinAttributeProcessorLocator.GetChildProcessors(Sirenix.OdinInspector.Editor.InspectorProperty,System.Reflection.MemberInfo)">
<summary>
Gets a list of <see cref="T:Sirenix.OdinInspector.Editor.OdinAttributeProcessor"/> to process attributes for the specified child member of the parent property.
</summary>
<param name="parentProperty">The parent of the member.</param>
<param name="member">Child member of the parent property.</param>
<returns>List of <see cref="T:Sirenix.OdinInspector.Editor.OdinAttributeProcessor"/> to process attributes for the specified member.</returns>
</member>
<member name="M:Sirenix.OdinInspector.Editor.DefaultOdinAttributeProcessorLocator.GetSelfProcessors(Sirenix.OdinInspector.Editor.InspectorProperty)">
<summary>
Gets a list of <see cref="T:Sirenix.OdinInspector.Editor.OdinAttributeProcessor"/> to process attributes for the specified property.
</summary>
<param name="property">The property to find attribute porcessors for.</param>
<returns>List of <see cref="T:Sirenix.OdinInspector.Editor.OdinAttributeProcessor"/> to process attributes for the speicied member.</returns>
</member>
<member name="T:Sirenix.OdinInspector.Editor.DefaultOdinPropertyResolverLocator">
<summary>
Default implementation and the version that will be used by <see cref="T:Sirenix.OdinInspector.Editor.PropertyTree"/> if no other <see cref="T:Sirenix.OdinInspector.Editor.OdinPropertyResolver"/> instance have been specified.
</summary>
</member>
<member name="F:Sirenix.OdinInspector.Editor.DefaultOdinPropertyResolverLocator.Instance">
<summary>
Singleton instance of <see cref="T:Sirenix.OdinInspector.Editor.DefaultOdinPropertyResolverLocator"/>.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.DefaultOdinPropertyResolverLocator.GetResolver(Sirenix.OdinInspector.Editor.InspectorProperty)">
<summary>
Gets an <see cref="T:Sirenix.OdinInspector.Editor.OdinPropertyResolver"/> instance for the specified property.
</summary>
<param name="property">The property to get an <see cref="T:Sirenix.OdinInspector.Editor.OdinPropertyResolver"/> instance for.</param>
<returns>An instance of <see cref="T:Sirenix.OdinInspector.Editor.OdinPropertyResolver"/> to resolver the specified property.</returns>
</member>
<member name="T:Sirenix.OdinInspector.Editor.OdinAttributeProcessorLocator">
<summary>
Base class definition for OdinAttributeProcessorLocator. Responsible for finding and creating <see cref="T:Sirenix.OdinInspector.Editor.OdinAttributeProcessor"/> instances to process attributes for properties.
Default OdinAttributeProcessorLocator have been implemented as <see cref="T:Sirenix.OdinInspector.Editor.DefaultOdinAttributeProcessorLocator"/>.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinAttributeProcessorLocator.GetChildProcessors(Sirenix.OdinInspector.Editor.InspectorProperty,System.Reflection.MemberInfo)">
<summary>
Gets a list of <see cref="T:Sirenix.OdinInspector.Editor.OdinAttributeProcessor"/> to process attributes for the specified child member of the parent property.
</summary>
<param name="parentProperty">The parent of the member.</param>
<param name="member">Child member of the parent property.</param>
<returns>List of <see cref="T:Sirenix.OdinInspector.Editor.OdinAttributeProcessor"/> to process attributes for the specified member.</returns>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinAttributeProcessorLocator.GetSelfProcessors(Sirenix.OdinInspector.Editor.InspectorProperty)">
<summary>
Gets a list of <see cref="T:Sirenix.OdinInspector.Editor.OdinAttributeProcessor"/> to process attributes for the specified property.
</summary>
<param name="property">The property to find attribute porcessors for.</param>
<returns>List of <see cref="T:Sirenix.OdinInspector.Editor.OdinAttributeProcessor"/> to process attributes for the speicied member.</returns>
</member>
<member name="T:Sirenix.OdinInspector.Editor.OdinPropertyResolverLocator">
<summary>
Base class for locator of <see cref="T:Sirenix.OdinInspector.Editor.OdinPropertyResolver"/>. Use <see cref="T:Sirenix.OdinInspector.Editor.DefaultOdinPropertyResolverLocator"/> for default implementation.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinPropertyResolverLocator.GetResolver(Sirenix.OdinInspector.Editor.InspectorProperty)">
<summary>
Gets an <see cref="T:Sirenix.OdinInspector.Editor.OdinPropertyResolver"/> instance for the specified property.
</summary>
<param name="property">The property to get an <see cref="T:Sirenix.OdinInspector.Editor.OdinPropertyResolver"/> instance for.</param>
<returns>An instance of <see cref="T:Sirenix.OdinInspector.Editor.OdinPropertyResolver"/> to resolver the specified property.</returns>
</member>
<member name="T:Sirenix.OdinInspector.Editor.IMaySupportPrefabModifications">
<summary>
Note: this interface may be temporary, and may eventually be substituted for a public-facing way of extending the prefab modification system.
<para/>
For now, it only exists to denote which internally defined resolvers support prefab modifications being set.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.CollectionChangeInfo">
<summary>
Contains information about a change that is going to occur/has occurred to a collection.
</summary>
<seealso cref="T:Sirenix.OdinInspector.Editor.CollectionChangeType"/>
</member>
<member name="T:Sirenix.OdinInspector.Editor.CollectionChangeType">
<summary>
Specifies the kinds of changes that can occur to collections.
</summary>
</member>
<member name="F:Sirenix.OdinInspector.Editor.CollectionChangeType.Unspecified">
<summary>
Unknown collection change, the change was not specified by the invoking code.
</summary>
</member>
<member name="F:Sirenix.OdinInspector.Editor.CollectionChangeType.Add">
<summary>
The change is adding a value to the collection. Value and SelectionIndex will be set.
</summary>
</member>
<member name="F:Sirenix.OdinInspector.Editor.CollectionChangeType.Insert">
<summary>
The change is inserting a value into the collection. Index, Value and SelectionIndex will be set.
</summary>
</member>
<member name="F:Sirenix.OdinInspector.Editor.CollectionChangeType.RemoveValue">
<summary>
The change is removing a value from the collection. Value and SelectionIndex will be set.
</summary>
</member>
<member name="F:Sirenix.OdinInspector.Editor.CollectionChangeType.RemoveIndex">
<summary>
The change is removing a value at an index from the collection. Index and SelectionIndex will be set.
</summary>
</member>
<member name="F:Sirenix.OdinInspector.Editor.CollectionChangeType.Clear">
<summary>
The change is clearing the collection. SelectionIndex will be set.
</summary>
</member>
<member name="F:Sirenix.OdinInspector.Editor.CollectionChangeType.RemoveKey">
<summary>
The change is removing a key from the collection. Key and SelectionIndex will be set.
</summary>
</member>
<member name="F:Sirenix.OdinInspector.Editor.CollectionChangeType.SetKey">
<summary>
The change is setting the value of a key in the collection. Key, Value and SelectionIndex will be set.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.SerializationBackend">
<summary>
Class that describes the different possible serialization backends that a property can have,
and specifies the capabilities of each backend.
</summary>
</member>
<member name="F:Sirenix.OdinInspector.Editor.SerializationBackend.UnityPolymorphic">
<summary>
The property is serialized by Unity's polymorphic serialization backend via the [SerializeReference] attribute. Polymorphism, null values and cyclical references are supported.
</summary>
</member>
<member name="F:Sirenix.OdinInspector.Editor.SerializationBackend.Unity">
<summary>
The property is serialized by Unity's classic serialization backend. Polymorphism, null values and types such as <see cref="T:System.Collections.Generic.Dictionary`2"/> are not supported.
</summary>
</member>
<member name="F:Sirenix.OdinInspector.Editor.SerializationBackend.Odin">
<summary>
The property is serialized by Odin. Polymorphism, null values and types such as <see cref="T:System.Collections.Generic.Dictionary`2"/> are supported.
</summary>
</member>
<member name="F:Sirenix.OdinInspector.Editor.SerializationBackend.None">
<summary>
<para>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.</para>
<para>In the case of fields or properties, polymorphism, null values and types such as <see cref="T:System.Collections.Generic.Dictionary`2"/> are supported, but will not be saved.</para>
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.NoneSerializationBackend">
<summary>
<para>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.</para>
<para>In the case of fields or properties, polymorphism, null values and types such as <see cref="T:System.Collections.Generic.Dictionary`2"/> are supported, but will not be saved.</para>
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.UnityClassicSerializationBackend">
<summary>
The property is serialized by Unity's classic serialization backend. Polymorphism, null values and types such as <see cref="T:System.Collections.Generic.Dictionary`2"/> are not supported.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.UnityPolymorphicSerializationBackend">
<summary>
The property is serialized by Unity's polymorphic serialization backend via the [SerializeReference] attribute. Polymorphism, null values and cyclical references are supported.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.OdinSerializationBackend">
<summary>
The property is serialized by Odin. Polymorphism, null values and types such as <see cref="T:System.Collections.Generic.Dictionary`2"/> are supported.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.AttributeStateUpdater`1.Attribute">
<summary>
Gets the attribute that the OdinAttributeStateUpdater applies to.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.AttributeStateUpdater`2.ValueEntry">
<summary>
Gets the strongly typed ValueEntry of the OdinAttributeStateUpdater's property.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.ValueStateUpdater`1.ValueEntry">
<summary>
Gets the strongly typed ValueEntry of the OdinValueStateUpdater's property.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.IPropertyValueCollection">
<summary>
Represents a weakly typed collection of values for a <see cref="T:Sirenix.OdinInspector.Editor.PropertyValueEntry"/> - one value per selected inspector target.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.IPropertyValueCollection.AreDirty">
<summary>
Whether the values have been changed since <see cref="M:Sirenix.OdinInspector.Editor.IPropertyValueCollection.MarkClean"/> was last called.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.IPropertyValueCollection.MarkClean">
<summary>
Marks the value collection as being clean again. This is typically called at the end of the current GUI frame, during <see cref="M:Sirenix.OdinInspector.Editor.PropertyValueEntry.ApplyChanges"/>.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.IPropertyValueCollection.ForceMarkDirty">
<summary>
Marks the value collection as being dirty, regardless of any value changes.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.IPropertyValueCollection.RevertUnappliedValues">
<summary>
Reverts the value collection to its origin values (found in <see cref="P:Sirenix.OdinInspector.Editor.IPropertyValueCollection.Original"/>) from the last <see cref="M:Sirenix.OdinInspector.Editor.PropertyValueEntry.Update"/> call, and marks the value collection as being clean again.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.IPropertyValueCollection.ForceSetValue(System.Int32,System.Object)">
<summary>
<para>Force sets the value, ignoring whether it is editable or not.</para>
<para>Note that this will fail on list element value entries where <see cref="!:IPropertyValueEntry.ListIsReadOnly"/> is true on the parent value entry.</para>
</summary>
<param name="index">The selection index of the value.</param>
<param name="value">The value to be set.</param>
</member>
<member name="P:Sirenix.OdinInspector.Editor.IPropertyValueCollection.Original">
<summary>
The original values of the value collection, such as they were immediately after the last <see cref="M:Sirenix.OdinInspector.Editor.PropertyValueEntry.Update"/> call.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.IPropertyValueCollection`1">
<summary>
Represents a strongly typed collection of values for a <see cref="T:Sirenix.OdinInspector.Editor.PropertyValueEntry`1"/> - one value per selected inspector target.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.IPropertyValueCollection`1.Item(System.Int32)">
<summary>
Gets the value at the given selection index.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.IPropertyValueCollection`1.Count">
<summary>
The number of values in the collection.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.IPropertyValueCollection`1.Original">
<summary>
The original values of the value collection, such as they were immediately after the last <see cref="M:Sirenix.OdinInspector.Editor.PropertyValueEntry.Update"/> call.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.IPropertyValueCollection`1.ForceSetValue(System.Int32,`0)">
<summary>
<para>Force sets the value, ignoring whether it is editable or not.</para>
<para>Note that this will fail on list element value entries where <see cref="!:IPropertyValueEntry.ListIsReadOnly"/> is true on the parent value entry.</para>
</summary>
<param name="index">The selection index of the value.</param>
<param name="value">The value to be set.</param>
</member>
<member name="T:Sirenix.OdinInspector.Editor.IPropertyValueEntry">
<summary>
Represents the values of an <see cref="T:Sirenix.OdinInspector.Editor.InspectorProperty"/>, and contains utilities for querying the values' type and getting and setting them.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.IPropertyValueEntry.ValueCount">
<summary>
The number of parallel values this entry represents. This will always be exactly equal to the count of <see cref="P:Sirenix.OdinInspector.Editor.PropertyTree.WeakTargets"/>.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.IPropertyValueEntry.IsEditable">
<summary>
Whether this value entry is editable or not.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.IPropertyValueEntry.TargetReferencePath">
<summary>
If this value entry has the override type <see cref="F:Sirenix.OdinInspector.Editor.PropertyValueState.Reference"/>, this is the path of the property it references.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.IPropertyValueEntry.SerializationBackend">
<summary>
<para>The actual serialization backend for this value entry, possibly inherited from the serialization backend of the root property this entry is a child of.</para>
<para>Note that this is *not* always equal to <see cref="P:Sirenix.OdinInspector.Editor.InspectorPropertyInfo.SerializationBackend"/>.</para>
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.IPropertyValueEntry.Property">
<summary>
The property whose values this value entry represents.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.IPropertyValueEntry.WeakValues">
<summary>
Provides access to the weakly typed values of this value entry.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.IPropertyValueEntry.ValueChangedFromPrefab">
<summary>
Whether this value entry has been changed from its prefab counterpart.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.IPropertyValueEntry.ListLengthChangedFromPrefab">
<summary>
Whether this value entry has had its list length changed from its prefab counterpart.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.IPropertyValueEntry.DictionaryChangedFromPrefab">
<summary>
Whether this value entry has had its dictionary values changes from its prefab counterpart.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.IPropertyValueEntry.WeakSmartValue">
<summary>
<para>A weakly typed smart value that represents the first element of the value entry's value collection, but has "smart logic" for setting the value that detects relevant changes and applies them in parallel.</para>
<para>This lets you often just use the smart value instead of having to deal with the tedium of multiple parallel values.</para>
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.IPropertyValueEntry.ParentType">
<summary>
The type from which this value entry comes. If this value entry represents a member value, this is the declaring type of the member. If the value entry represents a collection element, this is the type of the collection.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.IPropertyValueEntry.TypeOfValue">
<summary>
The most precise known contained type of the value entry. If polymorphism is in effect, this will be some type derived from <see cref="P:Sirenix.OdinInspector.Editor.IPropertyValueEntry.BaseValueType"/>.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.IPropertyValueEntry.BaseValueType">
<summary>
The base type of the value entry. If this is value entry represents a member value, this is the type of the member. If the value entry represents a collection element, this is the element type of the collection.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.IPropertyValueEntry.ValueState">
<summary>
The special state of the value entry.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.IPropertyValueEntry.IsAlias">
<summary>
Whether this value entry is an alias, or not. Value entry aliases are used to provide strongly typed value entries in the case of polymorphism.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.IPropertyValueEntry.Context">
<summary>
The context container of this property.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.IPropertyValueEntry.IsMarkedAtomic">
<summary>
Whether this type is marked as an atomic type using a <see cref="T:Sirenix.OdinInspector.Editor.IAtomHandler"/>.
</summary>
</member>
<member name="E:Sirenix.OdinInspector.Editor.IPropertyValueEntry.OnValueChanged">
<summary>
An event that is invoked during <see cref="M:Sirenix.OdinInspector.Editor.IPropertyValueEntry.ApplyChanges"/>, when any values have changed.
</summary>
</member>
<member name="E:Sirenix.OdinInspector.Editor.IPropertyValueEntry.OnChildValueChanged">
<summary>
An event that is invoked during <see cref="M:Sirenix.OdinInspector.Editor.IPropertyValueEntry.ApplyChanges"/>, when any child values have changed.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.IPropertyValueEntry.Update">
<summary>
Updates the values contained in this value entry to the actual values in the target objects, and updates its state (override, type of value, etc.) accordingly.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.IPropertyValueEntry.ApplyChanges">
<summary>
Applies the changes made to this value entry to the target objects, and registers prefab modifications as necessary.
</summary>
<returns>True if any changes were made, otherwise, false.</returns>
</member>
<member name="M:Sirenix.OdinInspector.Editor.IPropertyValueEntry.ValueTypeValuesAreEqual(Sirenix.OdinInspector.Editor.IPropertyValueEntry)">
<summary>
<para>Checks whether the values in this value entry are equal to the values in another value entry.</para>
<para>Note, both value entries must have the same value type, and must represent values that are .NET value types.</para>
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.IPropertyValueEntry.ValueIsPrefabDifferent(System.Object,System.Int32)">
<summary>
<para>Determines whether the value at the given selection index is different from the given prefab value, as is relevant for prefab modification checks.</para>
<para>If the value is a reference type, null and type difference is checked. If value is a value type, a comparer from <see cref="M:Sirenix.Utilities.TypeExtensions.GetEqualityComparerDelegate``1"/> is used.</para>
<para>This method is best ignored unless you know what you are doing.</para>
</summary>
<param name="value">The value to check differences against.</param>
<param name="index">The selection index to compare against.</param>
</member>
<member name="T:Sirenix.OdinInspector.Editor.IPropertyValueEntry`1">
<summary>
Represents the strongly typed values of an <see cref="T:Sirenix.OdinInspector.Editor.InspectorProperty"/>, and contains utilities for querying the values' type and getting and setting them.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.IPropertyValueEntry`1.Values">
<summary>
Provides access to the strongly typed values of this value entry.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.IPropertyValueEntry`1.SmartValue">
<summary>
<para>A strongly typed smart value that represents the first element of the value entry's value collection, but has "smart logic" for setting the value that detects relevant changes and applies them in parallel.</para>
<para>This lets you often just use the smart value instead of having to deal with the tedium of multiple parallel values.</para>
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.IPropertyValueEntry`1.ValueIsPrefabDifferent(`0,System.Int32)">
<summary>
<para>Determines whether the value at the given selection index is different from the given prefab value, as is relevant for prefab modification checks.</para>
<para>If the value is a reference type, null and type difference is checked. If value is a value type, a comparer from <see cref="M:Sirenix.Utilities.TypeExtensions.GetEqualityComparerDelegate``1"/> is used.</para>
<para>This method is best ignored unless you know what you are doing.</para>
</summary>
<param name="value">The value to check differences against.</param>
<param name="index">The selection index to compare against.</param>
</member>
<member name="T:Sirenix.OdinInspector.Editor.IValueEntryActualValueSetter">
<summary>
<para>An internally used interface that is used by value entries during <see cref="M:Sirenix.OdinInspector.Editor.PropertyValueEntry.ApplyChanges"/>, that lets value entries force each other to set values directly to their target objects.</para>
<para>This interface should not be used by people who do not know what they are doing.</para>
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.IValueEntryActualValueSetter.SetActualValue(System.Int32,System.Object)">
<summary>
Sets the actual value of a value entry, for a given selection index.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.IValueEntryActualValueSetter`1">
<summary>
<para>An internally used interface that is used by value entries during <see cref="M:Sirenix.OdinInspector.Editor.PropertyValueEntry.ApplyChanges"/>, that lets value entries force each other to set values directly to their target objects.</para>
<para>This interface should not be used by people who do not know what they are doing.</para>
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.IValueEntryActualValueSetter`1.SetActualValue(System.Int32,`0)">
<summary>
Sets the actual value of a value entry, for a given selection index.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.PropertyValueCollection">
<summary>
Represents a weakly typed collection of values for a <see cref="T:Sirenix.OdinInspector.Editor.PropertyValueEntry"/> - one value per selected inspector target.
</summary>
</member>
<member name="F:Sirenix.OdinInspector.Editor.PropertyValueCollection.Property">
<summary>
The property whose values are represented.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyValueCollection.#ctor(Sirenix.OdinInspector.Editor.InspectorProperty)">
<summary>
Initializes a new instance of the <see cref="T:Sirenix.OdinInspector.Editor.PropertyValueCollection"/> class.
</summary>
<param name="property">The property to represent.</param>
<exception cref="T:System.ArgumentNullException">property is null</exception>
</member>
<member name="P:Sirenix.OdinInspector.Editor.PropertyValueCollection.AreDirty">
<summary>
Whether the values have been changed since <see cref="M:Sirenix.OdinInspector.Editor.PropertyValueCollection.MarkClean" /> was last called.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.PropertyValueCollection.Count">
<summary>
The number of values in the collection.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.PropertyValueCollection.IsSynchronized">
<summary>
Gets a value indicating whether this instance is synchronized.
</summary>
<value>
<c>true</c> if this instance is synchronized; otherwise, <c>false</c>.
</value>
</member>
<member name="P:Sirenix.OdinInspector.Editor.PropertyValueCollection.SyncRoot">
<summary>
Gets the synchronization root object.
</summary>
<value>
The synchronization root object.
</value>
</member>
<member name="P:Sirenix.OdinInspector.Editor.PropertyValueCollection.WeakOriginal">
<summary>
The original values of the (loosely typed) value collection, such as they were immediately after the last <see cref="M:Sirenix.OdinInspector.Editor.PropertyValueEntry.Update"/> call.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.PropertyValueCollection.Item(System.Int32)">
<summary>
Gets or sets the weakly typed <see cref="T:System.Object"/> at the specified index.
</summary>
<value>
The <see cref="T:System.Object"/> value.
</value>
<param name="index">The index to set.</param>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyValueCollection.GetEnumerator">
<summary>
Gets an enumerator for the collection.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyValueCollection.MarkClean">
<summary>
Marks the value collection as being clean again. This is typically called at the end of the current GUI frame, during <see cref="M:Sirenix.OdinInspector.Editor.PropertyValueEntry.ApplyChanges" />.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyValueCollection.RevertUnappliedValues">
<summary>
Reverts the value collection to its origin values (found in <see cref="!:Original" />) from the last <see cref="M:Sirenix.OdinInspector.Editor.PropertyValueEntry.Update" /> call, and marks the value collection as being clean again.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyValueCollection.Contains(System.Object)">
<summary>
Determines whether the collection contains the specified value.
</summary>
<param name="value">The value.</param>
<returns>
<c>true</c> if the collection contains the specified value; otherwise, <c>false</c>.
</returns>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyValueCollection.CopyTo(System.Array,System.Int32)">
<summary>
Copies the collection to an array.
</summary>
<param name="array">The array to copy to.</param>
<param name="index">The index to copy from.</param>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyValueCollection.IndexOf(System.Object)">
<summary>
Gets the index of the given value, or -1 if the value was not found.
</summary>
<param name="value">The value to get the index of.</param>
<returns>The index of the given value, or -1 if the value was not found.</returns>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyValueCollection.GetWeakValue(System.Int32)">
<summary>
Gets the weakly typed value at the given index.
</summary>
<param name="index">The index of the value to get.</param>
<returns>The weakly typed value at the given index</returns>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyValueCollection.SetWeakValue(System.Int32,System.Object)">
<summary>
Sets the weakly typed value at the given index.
</summary>
<param name="index">The index to set the value of.</param>
<param name="value">The value to set.</param>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyValueCollection.ForceSetValue(System.Int32,System.Object)">
<summary>
<para>Force sets the value, ignoring whether it is editable or not.</para>
<para>Note that this will fail on list element value entries where <see cref="!:IPropertyValueEntry.ListIsReadOnly" /> is true on the parent value entry.</para>
</summary>
<param name="index">The selection index of the value.</param>
<param name="value">The value to be set.</param>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyValueCollection.ForceMarkDirty">
<summary>
Marks the value collection as being dirty, regardless of any value changes.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.PropertyValueCollection`1">
<summary>
Represents a strongly typed collection of values for a <see cref="T:Sirenix.OdinInspector.Editor.PropertyValueEntry`1" /> - one value per selected inspector target.
</summary>
<typeparam name="TValue">The element type of the collection.</typeparam>
<seealso cref="T:Sirenix.OdinInspector.Editor.IPropertyValueCollection" />
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyValueCollection`1.#ctor(Sirenix.OdinInspector.Editor.InspectorProperty,`0[],`0[],`0[],`0[])">
<summary>
Initializes a new instance of the <see cref="T:Sirenix.OdinInspector.Editor.PropertyValueCollection`1"/> class.
</summary>
<param name="property">The property.</param>
<param name="internalArray">The internal array.</param>
<param name="originalArray">The original array.</param>
<param name="atomArray">The internal atom array.</param>
<param name="originalAtomArray">The original atom array.</param>
</member>
<member name="P:Sirenix.OdinInspector.Editor.PropertyValueCollection`1.AreDirty">
<summary>
Whether the values have been changed since <see cref="M:Sirenix.OdinInspector.Editor.PropertyValueCollection`1.MarkClean" /> was last called.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.PropertyValueCollection`1.Count">
<summary>
The number of values in the collection.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.PropertyValueCollection`1.IsSynchronized">
<summary>
Gets a value indicating whether this instance is synchronized.
</summary>
<value>
<c>true</c> if this instance is synchronized; otherwise, <c>false</c>.
</value>
</member>
<member name="P:Sirenix.OdinInspector.Editor.PropertyValueCollection`1.SyncRoot">
<summary>
Gets the synchronization root object.
</summary>
<value>
The synchronization root object.
</value>
</member>
<member name="P:Sirenix.OdinInspector.Editor.PropertyValueCollection`1.WeakOriginal">
<summary>
The original values of the (loosely typed) value collection, such as they were immediately after the last <see cref="M:Sirenix.OdinInspector.Editor.PropertyValueEntry.Update" /> call.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.PropertyValueCollection`1.Item(System.Int32)">
<summary>
Gets or sets the <see cref="!:TValue"/> at the specified index.
</summary>
<value>
The <see cref="!:TValue"/>.
</value>
<param name="index">The index.</param>
<returns></returns>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyValueCollection`1.GetEnumerator">
<summary>
Gets an enumerator for the collection.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyValueCollection`1.MarkClean">
<summary>
Marks the value collection as being clean again. This is typically called at the end of the current GUI frame, during <see cref="M:Sirenix.OdinInspector.Editor.PropertyValueEntry.ApplyChanges" />.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyValueCollection`1.RevertUnappliedValues">
<summary>
Reverts the value collection to its origin values (found in <see cref="!:Original" />) from the last <see cref="M:Sirenix.OdinInspector.Editor.PropertyValueEntry.Update" /> call, and marks the value collection as being clean again.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyValueCollection`1.CopyTo(System.Array,System.Int32)">
<summary>
Copies the collection to an array.
</summary>
<param name="array">The array to copy to.</param>
<param name="index">The index to copy from.</param>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyValueCollection`1.GetWeakValue(System.Int32)">
<summary>
Gets the weakly typed value at the given index.
</summary>
<param name="index">The index of the value to get.</param>
<returns>
The weakly typed value at the given index
</returns>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyValueCollection`1.SetWeakValue(System.Int32,System.Object)">
<summary>
Sets the weakly typed value at the given index.
</summary>
<param name="index">The index to set the value of.</param>
<param name="value">The value to set.</param>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyValueCollection`1.Contains(System.Object)">
<summary>
Determines whether the collection contains the specified value.
</summary>
<param name="value">The value.</param>
<returns>
<c>true</c> if the collection contains the specified value; otherwise, <c>false</c>.
</returns>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyValueCollection`1.IndexOf(System.Object)">
<summary>
Gets the index of the given value, or -1 if the value was not found.
</summary>
<param name="value">The value to get the index of.</param>
<returns>
The index of the given value, or -1 if the value was not found.
</returns>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyValueCollection`1.ForceSetValue(System.Int32,System.Object)">
<summary>
<para>Force sets the value, ignoring whether it is editable or not.</para>
<para>Note that this will fail on list element value entries where <see cref="!:IPropertyValueEntry.ListIsReadOnly" /> is true on the parent value entry.</para>
</summary>
<param name="index">The selection index of the value.</param>
<param name="value">The value to be set.</param>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyValueCollection`1.ForceSetValue(System.Int32,`0)">
<summary>
<para>Force sets the value, ignoring whether it is editable or not.</para>
<para>Note that this will fail on list element value entries where <see cref="!:IPropertyValueEntry.ListIsReadOnly" /> is true on the parent value entry.</para>
</summary>
<param name="index">The selection index of the value.</param>
<param name="value">The value to be set.</param>
<exception cref="T:System.NotImplementedException"></exception>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyValueCollection`1.ForceMarkDirty">
<summary>
Marks the value collection as being dirty, regardless of any value changes.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.PropertyValueCollectionAlias`2">
<summary>
<para>Represents an alias for a strongly typed collection of values for a <see cref="T:Sirenix.OdinInspector.Editor.PropertyValueEntry`1" /> - one value per selected inspector target.</para>
<para>This class ensures that polymorphism works in the inspector, and can be strongly typed in applicable cases.</para>
</summary>
<typeparam name="TActualValue">The type of the aliased collection.</typeparam>
<typeparam name="TValue">The polymorphic type of this collection, which is assignable to <see cref="!:TActualValue"/>.</typeparam>
<seealso cref="T:Sirenix.OdinInspector.Editor.PropertyValueCollection" />
<seealso cref="T:Sirenix.OdinInspector.Editor.IPropertyValueCollection`1" />
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyValueCollectionAlias`2.#ctor(Sirenix.OdinInspector.Editor.InspectorProperty,Sirenix.OdinInspector.Editor.IPropertyValueCollection{`0},`1[],`1[])">
<summary>
Initializes a new instance of the <see cref="T:Sirenix.OdinInspector.Editor.PropertyValueCollectionAlias`2"/> class.
</summary>
<param name="property">The property.</param>
<param name="aliasedCollection">The aliased collection.</param>
<param name="atomArray">Not yet documented.</param>
<param name="originalAtomArray">Not yet documented.</param>
<exception cref="T:System.ArgumentException">aliasedCollection</exception>
</member>
<member name="P:Sirenix.OdinInspector.Editor.PropertyValueCollectionAlias`2.AreDirty">
<summary>
Whether the values have been changed since <see cref="M:Sirenix.OdinInspector.Editor.PropertyValueCollectionAlias`2.MarkClean" /> was last called.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.PropertyValueCollectionAlias`2.Count">
<summary>
The number of values in the collection.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.PropertyValueCollectionAlias`2.IsSynchronized">
<summary>
Gets a value indicating whether this instance is synchronized.
</summary>
<value>
<c>true</c> if this instance is synchronized; otherwise, <c>false</c>.
</value>
</member>
<member name="P:Sirenix.OdinInspector.Editor.PropertyValueCollectionAlias`2.SyncRoot">
<summary>
Gets the synchronization root object.
</summary>
<value>
The synchronization root object.
</value>
</member>
<member name="P:Sirenix.OdinInspector.Editor.PropertyValueCollectionAlias`2.WeakOriginal">
<summary>
The original values of the (loosely typed) value collection, such as they were immediately after the last <see cref="M:Sirenix.OdinInspector.Editor.PropertyValueEntry.Update" /> call.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.PropertyValueCollectionAlias`2.Original">
<summary>
The original values of the value collection, such as they were immediately after the last <see cref="M:Sirenix.OdinInspector.Editor.PropertyValueEntry.Update" /> call.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.PropertyValueCollectionAlias`2.Item(System.Int32)">
<summary>
Gets or sets the <see cref="!:TValue"/> at the specified index.
</summary>
<value>
The <see cref="!:TValue"/>.
</value>
<param name="index">The index.</param>
<returns></returns>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyValueCollectionAlias`2.GetEnumerator">
<summary>
Gets an enumerator for the collection.
</summary>
<returns></returns>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyValueCollectionAlias`2.MarkClean">
<summary>
Marks the value collection as being clean again. This is typically called at the end of the current GUI frame, during <see cref="M:Sirenix.OdinInspector.Editor.PropertyValueEntry.ApplyChanges" />.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyValueCollectionAlias`2.RevertUnappliedValues">
<summary>
Reverts the value collection to its origin values (found in <see cref="P:Sirenix.OdinInspector.Editor.PropertyValueCollectionAlias`2.Original" />) from the last <see cref="M:Sirenix.OdinInspector.Editor.PropertyValueEntry.Update" /> call, and marks the value collection as being clean again.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyValueCollectionAlias`2.Contains(System.Object)">
<summary>
Determines whether the collection contains the specified value.
</summary>
<param name="value">The value.</param>
<returns>
<c>true</c> if the collection contains the specified value; otherwise, <c>false</c>.
</returns>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyValueCollectionAlias`2.IndexOf(System.Object)">
<summary>
Gets the index of the given value, or -1 if the value was not found.
</summary>
<param name="value">The value to get the index of.</param>
<returns>
The index of the given value, or -1 if the value was not found.
</returns>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyValueCollectionAlias`2.CopyTo(System.Array,System.Int32)">
<summary>
Copies the collection to an array.
</summary>
<param name="array">The array to copy to.</param>
<param name="index">The index to copy from.</param>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyValueCollectionAlias`2.GetWeakValue(System.Int32)">
<summary>
Gets the weakly typed value at the given index.
</summary>
<param name="index">The index of the value to get.</param>
<returns>
The weakly typed value at the given index
</returns>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyValueCollectionAlias`2.SetWeakValue(System.Int32,System.Object)">
<summary>
Sets the weakly typed value at the given index.
</summary>
<param name="index">The index to set the value of.</param>
<param name="value">The value to set.</param>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyValueCollectionAlias`2.ForceSetValue(System.Int32,`1)">
<summary>
<para>Force sets the value, ignoring whether it is editable or not.</para>
<para>Note that this will fail on list element value entries where <see cref="M:Sirenix.OdinInspector.Editor.IPropertyValueEntry.ListIsReadOnly" /> is true on the parent value entry.</para>
</summary>
<param name="index">The selection index of the value.</param>
<param name="value">The value to be set.</param>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyValueCollectionAlias`2.ForceSetValue(System.Int32,System.Object)">
<summary>
<para>Force sets the value, ignoring whether it is editable or not.</para>
<para>Note that this will fail on list element value entries where <see cref="!:IPropertyValueEntry.ListIsReadOnly" /> is true on the parent value entry.</para>
</summary>
<param name="index">The selection index of the value.</param>
<param name="value">The value to be set.</param>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyValueCollectionAlias`2.ForceMarkDirty">
<summary>
Marks the value collection as being dirty, regardless of any value changes.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.PropertyValueEntry">
<summary>
Represents the values of an <see cref="T:Sirenix.OdinInspector.Editor.InspectorProperty"/>, and contains utilities for querying the values' type and getting and setting them.
</summary>
<seealso cref="T:Sirenix.OdinInspector.Editor.IPropertyValueEntry" />
</member>
<member name="T:Sirenix.OdinInspector.Editor.PropertyValueEntry.ValueChangedDelegate">
<summary>
Delegate type used for the events <see cref="E:Sirenix.OdinInspector.Editor.PropertyValueEntry.OnValueChanged"/> and <see cref="E:Sirenix.OdinInspector.Editor.PropertyValueEntry.OnChildValueChanged"/>.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.PropertyValueEntry.ParentValueProperty">
<summary>
<para>The nearest parent property that has a value.
That is, the property from which this value
entry will fetch its parentvalues from in order
to extract its own values.</para>
<para>If <see cref="P:Sirenix.OdinInspector.Editor.PropertyValueEntry.ParentValueProperty"/> is null, this is a root property.</para>
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.PropertyValueEntry.IsBoxedValueType">
<summary>
Whether this value entry represents a boxed value type.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.PropertyValueEntry.ValueCount">
<summary>
The number of parallel values this entry represents. This will always be exactly equal to the count of <see cref="P:Sirenix.OdinInspector.Editor.PropertyTree.WeakTargets" />.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.PropertyValueEntry.IsEditable">
<summary>
Whether this value entry is editable or not.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.PropertyValueEntry.TargetReferencePath">
<summary>
If this value entry has the override type <see cref="F:Sirenix.OdinInspector.Editor.PropertyValueState.Reference" />, this is the path of the property it references.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.PropertyValueEntry.SerializationBackend">
<summary>
<para>The actual serialization backend for this value entry, possibly inherited from the serialization backend of the root property this entry is a child of.</para>
<para>Note that this is *not* always equal to <see cref="P:Sirenix.OdinInspector.Editor.InspectorPropertyInfo.SerializationBackend" />.</para>
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.PropertyValueEntry.Property">
<summary>
The property whose values this value entry represents.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.PropertyValueEntry.WeakValues">
<summary>
Provides access to the weakly typed values of this value entry.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.PropertyValueEntry.ValueChangedFromPrefab">
<summary>
Whether this value entry has been changed from its prefab counterpart.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.PropertyValueEntry.ListLengthChangedFromPrefab">
<summary>
Whether this value entry has had its list length changed from its prefab counterpart.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.PropertyValueEntry.DictionaryChangedFromPrefab">
<summary>
Whether this value entry has had its dictionary values changes from its prefab counterpart.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.PropertyValueEntry.WeakSmartValue">
<summary>
<para>A weakly typed smart value that represents the first element of the value entry's value collection, but has "smart logic" for setting the value that detects relevant changes and applies them in parallel.</para>
<para>This lets you often just use the smart value instead of having to deal with the tedium of multiple parallel values.</para>
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.PropertyValueEntry.ParentType">
<summary>
The type from which this value entry comes. If this value entry represents a member value, this is the declaring type of the member. If the value entry represents a collection element, this is the type of the collection.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.PropertyValueEntry.TypeOfValue">
<summary>
The most precise known contained type of the value entry. If polymorphism is in effect, this will be some type derived from <see cref="P:Sirenix.OdinInspector.Editor.PropertyValueEntry.BaseValueType" />.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.PropertyValueEntry.BaseValueType">
<summary>
The base type of the value entry. If this is value entry represents a member value, this is the type of the member. If the value entry represents a collection element, this is the element type of the collection.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.PropertyValueEntry.ValueState">
<summary>
The special state of the value entry.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.PropertyValueEntry.IsAlias">
<summary>
Whether this value entry is an alias, or not. Value entry aliases are used to provide strongly typed value entries in the case of polymorphism.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.PropertyValueEntry.Context">
<summary>
The context container of this property.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.PropertyValueEntry.IsMarkedAtomic">
<summary>
Whether this type is marked as an atomic type using a <see cref="T:Sirenix.OdinInspector.Editor.IAtomHandler"/>.
</summary>
</member>
<member name="E:Sirenix.OdinInspector.Editor.PropertyValueEntry.OnValueChanged">
<summary>
An event that is invoked during <see cref="M:Sirenix.OdinInspector.Editor.PropertyValueEntry.ApplyChanges" />, when any values have changed.
</summary>
</member>
<member name="E:Sirenix.OdinInspector.Editor.PropertyValueEntry.OnChildValueChanged">
<summary>
An event that is invoked during <see cref="M:Sirenix.OdinInspector.Editor.PropertyValueEntry.ApplyChanges" />, when any child values have changed.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyValueEntry.Update">
<summary>
Updates the values contained in this value entry to the actual values in the target objects, and updates its state (override, type of value, etc.) accordingly.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyValueEntry.ValueTypeValuesAreEqual(Sirenix.OdinInspector.Editor.IPropertyValueEntry)">
<summary>
<para>Checks whether the values in this value entry are equal to the values in another value entry.</para>
<para>Note, both value entries must have the same value type, and must represent values that are .NET value types.</para>
</summary>
<param name="other"></param>
<returns></returns>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyValueEntry.ApplyChanges">
<summary>
Applies the changes made to this value entry to the target objects, and registers prefab modifications as necessary.
</summary>
<returns>
True if any changes were made, otherwise, false.
</returns>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyValueEntry.GetValueState">
<summary>
Determines the value state of this value entry.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyValueEntry.GetMostPreciseContainedType">
<summary>
Determines what the most precise contained type is on this value entry.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyValueEntry.UpdateValues">
<summary>
Updates all values in this value entry from the target tree values.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyValueEntry.Initialize">
<summary>
Initializes this value entry.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyValueEntry.CreateAlias(Sirenix.OdinInspector.Editor.PropertyValueEntry,System.Type)">
<summary>
Creates an alias value entry of a given type, for a given value entry. This is used to implement polymorphism in Odin.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyValueEntry.Create(Sirenix.OdinInspector.Editor.InspectorProperty,System.Type,System.Boolean)">
<summary>
Creates a value entry for a given property, of a given value type. Note that the created value entry is returned un-updated, and needs to have <see cref="M:Sirenix.OdinInspector.Editor.PropertyValueEntry.Update"/> called on it before it can be used.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyValueEntry.ValueIsPrefabDifferent(System.Object,System.Int32)">
<summary>
<para>Determines whether the value at the given selection index is different from the given prefab value, as is relevant for prefab modification checks.</para>
<para>If the value is a reference type, null and type difference is checked. If value is a value type, a comparer from <see cref="M:Sirenix.Utilities.TypeExtensions.GetEqualityComparerDelegate``1" /> is used.</para>
<para>This method is best ignored unless you know what you are doing.</para>
</summary>
<param name="value">The value to check differences against.</param>
<param name="index">The selection index to compare against.</param>
</member>
<member name="T:Sirenix.OdinInspector.Editor.PropertyValueEntry`1">
<summary>
Represents the values of an <see cref="T:Sirenix.OdinInspector.Editor.InspectorProperty" />, and contains utilities for querying the values' type and getting and setting them.
</summary>
<typeparam name="TValue">The type of the value.</typeparam>
<seealso cref="T:Sirenix.OdinInspector.Editor.IPropertyValueEntry" />
</member>
<member name="F:Sirenix.OdinInspector.Editor.PropertyValueEntry`1.EqualityComparer">
<summary>
An equality comparer for comparing values of type <see cref="!:TValue"/>. This is gotten using <see cref="M:Sirenix.Utilities.TypeExtensions.GetEqualityComparerDelegate``1"/>.
</summary>
</member>
<member name="F:Sirenix.OdinInspector.Editor.PropertyValueEntry`1.ValueIsPrimitive">
<summary>
Whether <see cref="!:TValue"/>.is a primitive type; that is, the type is primitive, a string, or an enum.
</summary>
</member>
<member name="F:Sirenix.OdinInspector.Editor.PropertyValueEntry`1.ValueIsValueType">
<summary>
Whether <see cref="!:TValue"/> is a value type.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.PropertyValueEntry`1.ValueIsUnityObject">
<summary>
Whether <see cref="P:Sirenix.OdinInspector.Editor.PropertyValueEntry.TypeOfValue"/> is derived from <see cref="T:UnityEngine.Object"/>.
</summary>
</member>
<member name="F:Sirenix.OdinInspector.Editor.PropertyValueEntry`1.ValueIsMarkedAtomic">
<summary>
Whether the type of the value is marked atomic.
</summary>
</member>
<member name="F:Sirenix.OdinInspector.Editor.PropertyValueEntry`1.AtomHandler">
<summary>
If the type of the value is marked atomic, this an instance of an atom handler for the value type.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyValueEntry`1.#ctor">
<summary>
Initializes a new instance of the <see cref="T:Sirenix.OdinInspector.Editor.PropertyValueEntry`1"/> class.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.PropertyValueEntry`1.WeakValues">
<summary>
Provides access to the weakly typed values of this value entry.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.PropertyValueEntry`1.Values">
<summary>
Provides access to the strongly typed values of this value entry.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.PropertyValueEntry`1.IsMarkedAtomic">
<summary>
Whether this type is marked as an atomic type using a <see cref="T:Sirenix.OdinInspector.Editor.IAtomHandler"/>.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.PropertyValueEntry`1.WeakSmartValue">
<summary>
<para>A weakly typed smart value that represents the first element of the value entry's value collection, but has "smart logic" for setting the value that detects relevant changes and applies them in parallel.</para>
<para>This lets you often just use the smart value instead of having to deal with the tedium of multiple parallel values.</para>
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.PropertyValueEntry`1.SmartValue">
<summary>
<para>A strongly typed smart value that represents the first element of the value entry's value collection, but has "smart logic" for setting the value that detects relevant changes and applies them in parallel.</para>
<para>This lets you often just use the smart value instead of having to deal with the tedium of multiple parallel values.</para>
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.PropertyValueEntry`1.OriginalValuesArray">
<summary>
An array containing the original values as they were at the beginning of frame.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.PropertyValueEntry`1.InternalValuesArray">
<summary>
An array containing the current modified set of values.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.PropertyValueEntry`1.AtomValuesArray">
<summary>
An array containing the current modified set of atomic values.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.PropertyValueEntry`1.OriginalAtomValuesArray">
<summary>
An array containing the original set of atomic values.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyValueEntry`1.Initialize">
<summary>
Initializes this value entry.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyValueEntry`1.SetActualValueImplementation(System.Int32,`0)">
<summary>
Sets the actual target tree value.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyValueEntry`1.ValueTypeValuesAreEqual(Sirenix.OdinInspector.Editor.IPropertyValueEntry)">
<summary>
<para>Checks whether the values in this value entry are equal to the values in another value entry.</para>
<para>Note, both value entries must have the same value type, and must represent values that are .NET value types.</para>
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyValueEntry`1.ValueIsPrefabDifferent(System.Object,System.Int32)">
<summary>
<para>Determines whether the value at the given selection index is different from the given prefab value, as is relevant for prefab modification checks.</para>
<para>If the value is a reference type, null and type difference is checked. If value is a value type, a comparer from <see cref="M:Sirenix.Utilities.TypeExtensions.GetEqualityComparerDelegate``1" /> is used.</para>
<para>This method is best ignored unless you know what you are doing.</para>
</summary>
<param name="value">The value to check differences against.</param>
<param name="index">The selection index to compare against.</param>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyValueEntry`1.ValueIsPrefabDifferent(`0,System.Int32)">
<summary>
<para>Determines whether the value at the given selection index is different from the given prefab value, as is relevant for prefab modification checks.</para>
<para>If the value is a reference type, null and type difference is checked. If value is a value type, a comparer from <see cref="M:Sirenix.Utilities.TypeExtensions.GetEqualityComparerDelegate``1" /> is used.</para>
<para>This method is best ignored unless you know what you are doing.</para>
</summary>
<param name="value">The value to check differences against.</param>
<param name="index">The selection index to compare against.</param>
</member>
<member name="T:Sirenix.OdinInspector.Editor.PropertyValueEntry`2">
<summary>
Represents the values of an <see cref="T:Sirenix.OdinInspector.Editor.InspectorProperty" />, and contains utilities for querying the values' type and getting and setting them.
</summary>
<typeparam name="TParent">The type of the parent.</typeparam>
<typeparam name="TValue">The type of the value.</typeparam>
<seealso cref="T:Sirenix.OdinInspector.Editor.IPropertyValueEntry" />
</member>
<member name="P:Sirenix.OdinInspector.Editor.PropertyValueEntry`2.ParentType">
<summary>
The type from which this value entry comes. If this value entry represents a member value, this is the declaring type of the member. If the value entry represents a collection element, this is the type of the collection.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyValueEntry`2.GetMostPreciseContainedType">
<summary>
Determines what the most precise contained type is on this value entry.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyValueEntry`2.Initialize">
<summary>
Initializes this value entry.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyValueEntry`2.UpdateValues">
<summary>
Updates all values in this value entry from the target tree values.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyValueEntry`2.GetValueState">
<summary>
Determines the value state of this value entry.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyValueEntry`2.ApplyChanges">
<summary>
Applies the changes made to this value entry to the target objects, and registers prefab modifications as necessary.
</summary>
<returns>
True if any changes were made, otherwise, false.
</returns>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyValueEntry`2.GetParent(System.Int32)">
<summary>
Gets the parent value at the given index.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.PropertyValueEntryAlias">
<summary>
A polymorphic alias for a <see cref="T:Sirenix.OdinInspector.Editor.PropertyValueEntry"/> instance, used to implement strongly typed polymorphism in Odin.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.PropertyValueEntryAlias.ValueCount">
<summary>
The number of parallel values this entry represents. This will always be exactly equal to the count of <see cref="P:Sirenix.OdinInspector.Editor.PropertyTree.WeakTargets" />.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.PropertyValueEntryAlias.IsEditable">
<summary>
Whether this value entry is editable or not.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.PropertyValueEntryAlias.TargetReferencePath">
<summary>
If this value entry has the override type <see cref="F:Sirenix.OdinInspector.Editor.PropertyValueState.Reference" />, this is the path of the property it references.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.PropertyValueEntryAlias.SerializationBackend">
<summary>
<para>The actual serialization backend for this value entry, possibly inherited from the serialization backend of the root property this entry is a child of.</para>
<para>Note that this is *not* always equal to <see cref="P:Sirenix.OdinInspector.Editor.InspectorPropertyInfo.SerializationBackend" />.</para>
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.PropertyValueEntryAlias.Property">
<summary>
The property whose values this value entry represents.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.PropertyValueEntryAlias.WeakValues">
<summary>
Provides access to the weakly typed values of this value entry.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.PropertyValueEntryAlias.ValueChangedFromPrefab">
<summary>
Whether this value entry has been changed from its prefab counterpart.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.PropertyValueEntryAlias.ListLengthChangedFromPrefab">
<summary>
Whether this value entry has had its list length changed from its prefab counterpart.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.PropertyValueEntryAlias.DictionaryChangedFromPrefab">
<summary>
Whether this value entry has had its dictionary values changes from its prefab counterpart.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.PropertyValueEntryAlias.WeakSmartValue">
<summary>
<para>A weakly typed smart value that represents the first element of the value entry's value collection, but has "smart logic" for setting the value that detects relevant changes and applies them in parallel.</para>
<para>This lets you often just use the smart value instead of having to deal with the tedium of multiple parallel values.</para>
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.PropertyValueEntryAlias.ParentType">
<summary>
The type from which this value entry comes. If this value entry represents a member value, this is the declaring type of the member. If the value entry represents a collection element, this is the type of the collection.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.PropertyValueEntryAlias.TypeOfValue">
<summary>
The most precise known contained type of the value entry. If polymorphism is in effect, this will be some type derived from <see cref="P:Sirenix.OdinInspector.Editor.PropertyValueEntryAlias.BaseValueType" />.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.PropertyValueEntryAlias.BaseValueType">
<summary>
The base type of the value entry. If this is value entry represents a member value, this is the type of the member. If the value entry represents a collection element, this is the element type of the collection.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.PropertyValueEntryAlias.ValueState">
<summary>
The special state of the value entry.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.PropertyValueEntryAlias.IsAlias">
<summary>
Whether this value entry is an alias, or not. Value entry aliases are used to provide strongly typed value entries in the case of polymorphism.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.PropertyValueEntryAlias.Context">
<summary>
The context container of this property.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.PropertyValueEntryAlias.IsMarkedAtomic">
<summary>
Whether this type is marked as an atomic type using a <see cref="T:Sirenix.OdinInspector.Editor.IAtomHandler"/>.
</summary>
</member>
<member name="E:Sirenix.OdinInspector.Editor.PropertyValueEntryAlias.OnValueChanged">
<summary>
An event that is invoked during <see cref="M:Sirenix.OdinInspector.Editor.PropertyValueEntryAlias.ApplyChanges" />, when any values have changed.
</summary>
</member>
<member name="E:Sirenix.OdinInspector.Editor.PropertyValueEntryAlias.OnChildValueChanged">
<summary>
An event that is invoked during <see cref="M:Sirenix.OdinInspector.Editor.PropertyValueEntryAlias.ApplyChanges" />, when any child values have changed.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyValueEntryAlias.ApplyChanges">
<summary>
Applies the changes made to this value entry to the target objects, and registers prefab modifications as necessary.
</summary>
<returns>
True if any changes were made, otherwise, false.
</returns>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyValueEntryAlias.Update">
<summary>
Updates the values contained in this value entry to the actual values in the target objects, and updates its state (override, type of value, etc.) accordingly.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyValueEntryAlias.ValueTypeValuesAreEqual(Sirenix.OdinInspector.Editor.IPropertyValueEntry)">
<summary>
<para>Checks whether the values in this value entry are equal to the values in another value entry.</para>
<para>Note, both value entries must have the same value type, and must represent values that are .NET value types.</para>
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyValueEntryAlias.SetActualValue(System.Int32,System.Object)">
<summary>
Sets the actual value of a value entry, for a given selection index.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyValueEntryAlias.ValueIsPrefabDifferent(System.Object,System.Int32)">
<summary>
<para>Determines whether the value at the given selection index is different from the given prefab value, as is relevant for prefab modification checks.</para>
<para>If the value is a reference type, null and type difference is checked. If value is a value type, a comparer from <see cref="M:Sirenix.Utilities.TypeExtensions.GetEqualityComparerDelegate``1" /> is used.</para>
<para>This method is best ignored unless you know what you are doing.</para>
</summary>
<param name="value">The value to check differences against.</param>
<param name="index">The selection index to compare against.</param>
</member>
<member name="T:Sirenix.OdinInspector.Editor.PropertyValueEntryAlias`2">
<summary>
A polymorphic alias for a <see cref="T:Sirenix.OdinInspector.Editor.PropertyValueEntry"/> instance, used to implement strongly typed polymorphism in Odin.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyValueEntryAlias`2.#ctor(Sirenix.OdinInspector.Editor.PropertyValueEntry)">
<summary>
Initializes a new instance of the <see cref="T:Sirenix.OdinInspector.Editor.PropertyValueEntryAlias`2"/> class.
</summary>
<param name="valueEntry">The value entry to alias.</param>
<exception cref="T:System.ArgumentNullException">valueEntry is null</exception>
</member>
<member name="P:Sirenix.OdinInspector.Editor.PropertyValueEntryAlias`2.Values">
<summary>
Provides access to the strongly typed values of this value entry.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.PropertyValueEntryAlias`2.SmartValue">
<summary>
<para>A strongly typed smart value that represents the first element of the value entry's value collection, but has "smart logic" for setting the value that detects relevant changes and applies them in parallel.</para>
<para>This lets you often just use the smart value instead of having to deal with the tedium of multiple parallel values.</para>
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.PropertyValueEntryAlias`2.WeakSmartValue">
<summary>
<para>A weakly typed smart value that represents the first element of the value entry's value collection, but has "smart logic" for setting the value that detects relevant changes and applies them in parallel.</para>
<para>This lets you often just use the smart value instead of having to deal with the tedium of multiple parallel values.</para>
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.PropertyValueEntryAlias`2.ValueCount">
<summary>
The number of parallel values this entry represents. This will always be exactly equal to the count of <see cref="P:Sirenix.OdinInspector.Editor.PropertyTree.WeakTargets" />.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.PropertyValueEntryAlias`2.IsEditable">
<summary>
Whether this value entry is editable or not.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.PropertyValueEntryAlias`2.TargetReferencePath">
<summary>
If this value entry has the override type <see cref="F:Sirenix.OdinInspector.Editor.PropertyValueState.Reference" />, this is the path of the property it references.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.PropertyValueEntryAlias`2.SerializationBackend">
<summary>
<para>The actual serialization backend for this value entry, possibly inherited from the serialization backend of the root property this entry is a child of.</para>
<para>Note that this is *not* always equal to <see cref="P:Sirenix.OdinInspector.Editor.InspectorPropertyInfo.SerializationBackend" />.</para>
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.PropertyValueEntryAlias`2.Property">
<summary>
The property whose values this value entry represents.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.PropertyValueEntryAlias`2.WeakValues">
<summary>
Provides access to the weakly typed values of this value entry.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.PropertyValueEntryAlias`2.ValueChangedFromPrefab">
<summary>
Whether this value entry has been changed from its prefab counterpart.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.PropertyValueEntryAlias`2.ListLengthChangedFromPrefab">
<summary>
Whether this value entry has had its list length changed from its prefab counterpart.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.PropertyValueEntryAlias`2.DictionaryChangedFromPrefab">
<summary>
Whether this value entry has had its dictionary values changes from its prefab counterpart.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.PropertyValueEntryAlias`2.ParentType">
<summary>
The type from which this value entry comes. If this value entry represents a member value, this is the declaring type of the member. If the value entry represents a collection element, this is the type of the collection.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.PropertyValueEntryAlias`2.TypeOfValue">
<summary>
The most precise known contained type of the value entry. If polymorphism is in effect, this will be some type derived from <see cref="P:Sirenix.OdinInspector.Editor.PropertyValueEntryAlias`2.BaseValueType" />.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.PropertyValueEntryAlias`2.BaseValueType">
<summary>
The base type of the value entry. If this is value entry represents a member value, this is the type of the member. If the value entry represents a collection element, this is the element type of the collection.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.PropertyValueEntryAlias`2.ValueState">
<summary>
The special state of the value entry.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.PropertyValueEntryAlias`2.IsMarkedAtomic">
<summary>
Whether this type is marked as an atomic type using a <see cref="T:Sirenix.OdinInspector.Editor.IAtomHandler"/>.
</summary>
</member>
<member name="E:Sirenix.OdinInspector.Editor.PropertyValueEntryAlias`2.OnValueChanged">
<summary>
An event that is invoked during <see cref="M:Sirenix.OdinInspector.Editor.PropertyValueEntryAlias`2.ApplyChanges" />, when any values have changed.
</summary>
</member>
<member name="E:Sirenix.OdinInspector.Editor.PropertyValueEntryAlias`2.OnChildValueChanged">
<summary>
An event that is invoked during <see cref="M:Sirenix.OdinInspector.Editor.PropertyValueEntryAlias`2.ApplyChanges" />, when any child values have changed.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyValueEntryAlias`2.ApplyChanges">
<summary>
Applies the changes made to this value entry to the target objects, and registers prefab modifications as necessary.
</summary>
<returns>
True if any changes were made, otherwise, false.
</returns>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyValueEntryAlias`2.Update">
<summary>
Updates the values contained in this value entry to the actual values in the target objects, and updates its state (override, type of value, etc.) accordingly.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyValueEntryAlias`2.ValueTypeValuesAreEqual(Sirenix.OdinInspector.Editor.IPropertyValueEntry)">
<summary>
<para>Checks whether the values in this value entry are equal to the values in another value entry.</para>
<para>Note, both value entries must have the same value type, and must represent values that are .NET value types.</para>
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyValueEntryAlias`2.SetActualValue(System.Int32,System.Object)">
<summary>
Sets the actual value of a value entry, for a given selection index.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyValueEntryAlias`2.ValueIsPrefabDifferent(`1,System.Int32)">
<summary>
<para>Determines whether the value at the given selection index is different from the given prefab value, as is relevant for prefab modification checks.</para>
<para>If the value is a reference type, null and type difference is checked. If value is a value type, a comparer from <see cref="M:Sirenix.Utilities.TypeExtensions.GetEqualityComparerDelegate``1" /> is used.</para>
<para>This method is best ignored unless you know what you are doing.</para>
</summary>
<param name="value">The value to check differences against.</param>
<param name="index">The selection index to compare against.</param>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PropertyValueEntryAlias`2.ValueIsPrefabDifferent(System.Object,System.Int32)">
<summary>
<para>Determines whether the value at the given selection index is different from the given prefab value, as is relevant for prefab modification checks.</para>
<para>If the value is a reference type, null and type difference is checked. If value is a value type, a comparer from <see cref="M:Sirenix.Utilities.TypeExtensions.GetEqualityComparerDelegate``1" /> is used.</para>
<para>This method is best ignored unless you know what you are doing.</para>
</summary>
<param name="value">The value to check differences against.</param>
<param name="index">The selection index to compare against.</param>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.AssetListAttributeDrawer`2">
<summary>
Draws properties marked with <see cref="T:Sirenix.OdinInspector.AssetListAttribute"/>.
Displays a configurable list of assets, where each item can be enabled or disabled.
</summary>
<seealso cref="T:Sirenix.OdinInspector.AssetListAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.AssetsOnlyAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.SceneObjectsOnlyAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.RequiredAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.ValidateInputAttribute"/>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.AssetListAttributeDrawer`2.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Draws the property.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.AssetListAttributeDrawer`2.PopulateGenericMenu(Sirenix.OdinInspector.Editor.InspectorProperty,UnityEditor.GenericMenu)">
<summary>
Populates the generic menu for the property.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.AssetListAttributeOnSingleObjectDrawer`1">
<summary>
Not yet documented.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.AssetListAttributeOnSingleObjectDrawer`1.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Not yet documented.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.AssetSelectorAttributeDrawer`1.Initialize">
<summary>
Initializes this instance.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.AssetSelectorAttributeDrawer`1.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Draws the property with GUILayout support. This method is called by DrawPropertyImplementation if the GUICallType is set to GUILayout, which is the default.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.ColorPaletteAttributeDrawer">
<summary>
Odin drawer for <see cref="T:Sirenix.OdinInspector.ColorPaletteAttribute"/>.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.ColorPaletteAttributeDrawer.Initialize">
<summary>
Initializes the drawer.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.ColorPaletteAttributeDrawer.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Not yet documented.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.ColorUsage32AttributeDrawer">
<summary>
Draws Color properties marked with <see cref="T:UnityEngine.ColorUsageAttribute"/>.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.ColorUsage32AttributeDrawer.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Draws the property.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.ColorUsageAttributeDrawer">
<summary>
Draws Color properties marked with <see cref="T:UnityEngine.ColorUsageAttribute"/>.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.ColorUsageAttributeDrawer.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Draws the property.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.CustomContextMenuAttributeDrawer">
<summary>
Adds a generic menu option to properties marked with <see cref="T:Sirenix.OdinInspector.CustomContextMenuAttribute"/>.
</summary>
<seealso cref="T:Sirenix.OdinInspector.CustomContextMenuAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.DisableContextMenuAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.OnInspectorGUIAttribute"/>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.CustomContextMenuAttributeDrawer.PopulateGenericMenu(Sirenix.OdinInspector.Editor.InspectorProperty,UnityEditor.GenericMenu)">
<summary>
Populates the generic menu for the property.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.CustomContextMenuAttributeDrawer.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Draws the property.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.CustomValueDrawerAttributeDrawer`1">
<summary>
Draws properties marked with <see cref="T:Sirenix.OdinInspector.ValidateInputAttribute"/>.
</summary>
<seealso cref="T:Sirenix.OdinInspector.ValidateInputAttribute"/>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.DelayedAttributeCharDrawer">
<summary>
Draws char properties marked with <see cref="T:UnityEngine.DelayedAttribute"/>.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.DelayedAttributeCharDrawer.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Draws the property.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.DelayedAttributeStringDrawer">
<summary>
Draws string properties marked with <see cref="T:UnityEngine.DelayedAttribute"/>.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.DelayedAttributeStringDrawer.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Draws the property.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.DelayedAttributeSByteDrawer">
<summary>
Draws sbyte properties marked with <see cref="T:UnityEngine.DelayedAttribute"/>.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.DelayedAttributeSByteDrawer.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Draws the property.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.DelayedAttributeByteDrawer">
<summary>
Draws byte properties marked with <see cref="T:UnityEngine.DelayedAttribute"/>.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.DelayedAttributeByteDrawer.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Draws the property.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.DelayedAttributeInt16Drawer">
<summary>
Draws short properties marked with <see cref="T:UnityEngine.DelayedAttribute"/>.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.DelayedAttributeInt16Drawer.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Draws the property.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.DelayedAttributeUInt16Drawer">
<summary>
Draws ushort properties marked with <see cref="T:UnityEngine.DelayedAttribute"/>.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.DelayedAttributeUInt16Drawer.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Draws the property.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.DelayedAttributeInt32Drawer">
<summary>
Draws int properties marked with <see cref="T:UnityEngine.DelayedAttribute"/>.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.DelayedAttributeInt32Drawer.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Draws the property.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.DelayedAttributeUInt32Drawer">
<summary>
Draws uint properties marked with <see cref="T:UnityEngine.DelayedAttribute"/>.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.DelayedAttributeUInt32Drawer.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Draws the property.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.DelayedAttributeInt64Drawer">
<summary>
Draws long properties marked with <see cref="T:UnityEngine.DelayedAttribute"/>.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.DelayedAttributeInt64Drawer.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Draws the property.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.DelayedAttributeUInt64Drawer">
<summary>
Draws ulong properties marked with <see cref="T:UnityEngine.DelayedAttribute"/>.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.DelayedAttributeUInt64Drawer.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Draws the property.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.DelayedAttributeFloatDrawer">
<summary>
Draws float properties marked with <see cref="T:UnityEngine.DelayedAttribute"/>.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.DelayedAttributeFloatDrawer.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Draws the property.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.DelayedAttributeDoubleDrawer">
<summary>
Draws double properties marked with <see cref="T:UnityEngine.DelayedAttribute"/>.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.DelayedAttributeDoubleDrawer.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Draws the property.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.DelayedAttributeDecimalDrawer">
<summary>
Draws decimal properties marked with <see cref="T:UnityEngine.DelayedAttribute"/>.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.DelayedAttributeDecimalDrawer.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Draws the property.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.DelayedPropertyAttributeCharDrawer">
<summary>
Draws char properties marked with <see cref="T:Sirenix.OdinInspector.DelayedPropertyAttribute"/>.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.DelayedPropertyAttributeCharDrawer.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Draws the property.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.DelayedPropertyAttributeStringDrawer">
<summary>
Draws string properties marked with <see cref="T:Sirenix.OdinInspector.DelayedPropertyAttribute"/>.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.DelayedPropertyAttributeStringDrawer.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Draws the property.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.DelayedPropertyAttributeSByteDrawer">
<summary>
Draws sbyte properties marked with <see cref="T:Sirenix.OdinInspector.DelayedPropertyAttribute"/>.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.DelayedPropertyAttributeSByteDrawer.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Draws the property.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.DelayedPropertyAttributeByteDrawer">
<summary>
Draws byte properties marked with <see cref="T:Sirenix.OdinInspector.DelayedPropertyAttribute"/>.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.DelayedPropertyAttributeByteDrawer.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Draws the property.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.DelayedPropertyAttributeInt16Drawer">
<summary>
Draws short properties marked with <see cref="T:Sirenix.OdinInspector.DelayedPropertyAttribute"/>.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.DelayedPropertyAttributeInt16Drawer.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Draws the property.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.DelayedPropertyAttributeUInt16Drawer">
<summary>
Draws ushort properties marked with <see cref="T:Sirenix.OdinInspector.DelayedPropertyAttribute"/>.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.DelayedPropertyAttributeUInt16Drawer.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Draws the property.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.DelayedPropertyAttributeInt32Drawer">
<summary>
Draws int properties marked with <see cref="T:Sirenix.OdinInspector.DelayedPropertyAttribute"/>.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.DelayedPropertyAttributeInt32Drawer.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Draws the property.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.DelayedPropertyAttributeUInt32Drawer">
<summary>
Draws uint properties marked with <see cref="T:Sirenix.OdinInspector.DelayedPropertyAttribute"/>.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.DelayedPropertyAttributeUInt32Drawer.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Draws the property.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.DelayedPropertyAttributeInt64Drawer">
<summary>
Draws long properties marked with <see cref="T:Sirenix.OdinInspector.DelayedPropertyAttribute"/>.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.DelayedPropertyAttributeInt64Drawer.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Draws the property.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.DelayedPropertyAttributeUInt64Drawer">
<summary>
Draws ulong properties marked with <see cref="T:Sirenix.OdinInspector.DelayedPropertyAttribute"/>.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.DelayedPropertyAttributeUInt64Drawer.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Draws the property.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.DelayedPropertyAttributeFloatDrawer">
<summary>
Draws float properties marked with <see cref="T:Sirenix.OdinInspector.DelayedPropertyAttribute"/>.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.DelayedPropertyAttributeFloatDrawer.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Draws the property.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.DelayedPropertyAttributeDoubleDrawer">
<summary>
Draws double properties marked with <see cref="T:Sirenix.OdinInspector.DelayedPropertyAttribute"/>.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.DelayedPropertyAttributeDoubleDrawer.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Draws the property.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.DelayedPropertyAttributeDecimalDrawer">
<summary>
Draws decimal properties marked with <see cref="T:Sirenix.OdinInspector.DelayedPropertyAttribute"/>.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.DelayedPropertyAttributeDecimalDrawer.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Draws the property.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.DetailedInfoBoxAttributeDrawer">
<summary>
Draws properties marked with <see cref="T:Sirenix.OdinInspector.DetailedInfoBoxAttribute"/>.
</summary>
<seealso cref="T:Sirenix.OdinInspector.DetailedInfoBoxAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.InfoBoxAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.RequiredAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.OnInspectorGUIAttribute"/>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.DetailedInfoBoxAttributeDrawer.Initialize">
<summary>
Initializes this instance.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.DetailedInfoBoxAttributeDrawer.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Draws the property.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.DisplayAsStringAttributeDrawer`1">
<summary>
Draws properties marked with <see cref="T:Sirenix.OdinInspector.DisplayAsStringAttribute"/>.
Calls the properties ToString method to get the string to draw.
</summary>
<seealso cref="T:Sirenix.OdinInspector.HideLabelAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.LabelTextAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.InfoBoxAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.DetailedInfoBoxAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.MultiLinePropertyAttribute"/>
<seealso cref="T:UnityEngine.MultilineAttribute"/>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.DisplayAsStringAttributeDrawer`1.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Draws the property.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.EnableGUIAttributeDrawer">
<summary>
Draws members marked with <see cref="T:Sirenix.OdinInspector.EnableGUIAttribute"/>.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.EnumPagingAttributeDrawer`1">
<summary>
Odin drawer for the <see cref="T:Sirenix.OdinInspector.EnumPagingAttribute"/>.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.EnumPagingAttributeDrawer`1.CanDrawTypeFilter(System.Type)">
<summary>
Returns <c>true</c> if the drawer can draw the type.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.EnumPagingAttributeDrawer`1.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Draws the property.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.EnumToggleButtonsAttributeDrawer`1">
<summary>
Draws an enum in a horizontal button group instead of a dropdown.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.EnumToggleButtonsAttributeDrawer`1.CanDrawTypeFilter(System.Type)">
<summary>
Returns <c>true</c> if the drawer can draw the type.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.EnumToggleButtonsAttributeDrawer`1.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Draws the property.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.FilePathAttributeDrawer">
<summary>
Not yet documented.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.FilePathAttributeDrawer.Initialize">
<summary>
Initializes the drawer.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.FilePathAttributeDrawer.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Not yet documented.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.FolderPathAttributeDrawer">
<summary>
Not yet documented.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.FolderPathAttributeDrawer.Initialize">
<summary>
Initializes the drawer.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.FolderPathAttributeDrawer.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Not yet documented.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.FolderPathAttributeDrawer.PopulateGenericMenu(Sirenix.OdinInspector.Editor.InspectorProperty,UnityEditor.GenericMenu)">
<summary>
Adds customs generic menu options.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.GUIColorAttributeDrawer">
<summary>
Draws properties marked with <see cref="T:Sirenix.OdinInspector.GUIColorAttribute"/>.
This drawer sets the current GUI color, before calling the next drawer in the chain.
</summary>
<seealso cref="T:Sirenix.OdinInspector.GUIColorAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.LabelTextAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.TitleAttribute"/>
<seealso cref="T:UnityEngine.HeaderAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.ColorPaletteAttribute"/>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.GUIColorAttributeDrawer.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Draws the property.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.HeaderAttributeDrawer">
<summary>
Draws properties marked with <see cref="T:UnityEngine.HeaderAttribute"/>.
</summary>
<seealso cref="T:UnityEngine.HeaderAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.TitleAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.HideLabelAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.LabelTextAttribute"/>
<seealso cref="T:UnityEngine.SpaceAttribute"/>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.HeaderAttributeDrawer.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Draws the property.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.HideLabelAttributeDrawer">
<summary>
Draws properties marked with <see cref="T:Sirenix.OdinInspector.HideLabelAttribute"/>.
</summary>
<seealso cref="T:Sirenix.OdinInspector.HideLabelAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.LabelTextAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.TitleAttribute"/>
<seealso cref="T:UnityEngine.HeaderAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.GUIColorAttribute"/>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.HideLabelAttributeDrawer.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Draws the property.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.IndentAttributeDrawer">
<summary>
Draws properties marked with <see cref="T:Sirenix.OdinInspector.IndentAttribute"/>.
</summary>
<seealso cref="T:Sirenix.OdinInspector.IndentAttribute"/>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.IndentAttributeDrawer.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Draws the property.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.InfoBoxAttributeDrawer">
<summary>
Draws properties marked with <see cref="T:Sirenix.OdinInspector.InfoBoxAttribute"/>.
Draws an info box above the property. Error and warning info boxes can be tracked by Odin Scene Validator.
</summary>
<seealso cref="T:Sirenix.OdinInspector.InfoBoxAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.DetailedInfoBoxAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.RequiredAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.ValidateInputAttribute"/>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.InfoBoxAttributeDrawer.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Draws the property.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.InlineButtonAttributeDrawer`1">
<summary>
Draws properties marked with <see cref="T:Sirenix.OdinInspector.InlineButtonAttribute"/>
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.InlineButtonAttributeDrawer`1.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Draws the property.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.InlineEditorAttributeDrawer">
<summary>
Static GUI information reguarding the InlineEditor attribute.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.Drawers.InlineEditorAttributeDrawer.CurrentInlineEditorDrawDepth">
<summary>
Gets a value indicating how many InlineEditors we are currently in.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.InlineEditorAttributeDrawer`1">
<summary>
Draws properties marked with <see cref="T:Sirenix.OdinInspector.InlineEditorAttribute"/>.
</summary>
<seealso cref="T:Sirenix.OdinInspector.InlineEditorAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.DrawWithUnityAttribute"/>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.InlineEditorAttributeDrawer`1.Initialize">
<summary>
Initializes this instance.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.InlineEditorAttributeDrawer`1.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Draws the property layout.
</summary>
<param name="label">The label.</param>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.InlinePropertyAttributeDrawer">
<summary>
Drawer for the <see cref="T:Sirenix.OdinInspector.InlinePropertyAttribute"/> attribute.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.InlinePropertyAttributeDrawer.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Draws the property.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.LabelTextAttributeDrawer">
<summary>
Draws properties marked with <see cref="T:Sirenix.OdinInspector.LabelTextAttribute"/>.
Creates a new GUIContent, with the provided label text, before calling further down in the drawer chain.
</summary>
<seealso cref="T:Sirenix.OdinInspector.LabelTextAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.HideLabelAttribute"/>
<seealso cref="T:UnityEngine.TooltipAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.LabelWidthAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.TitleAttribute"/>
<seealso cref="T:UnityEngine.HeaderAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.GUIColorAttribute"/>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.LabelTextAttributeDrawer.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Draws the attribute.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.LabelWidthAttributeDrawer">
<summary>
Draws properties marked with the <see cref="T:Sirenix.OdinInspector.LabelWidthAttribute"/>.
</summary>
<seealso cref="T:Sirenix.OdinInspector.LabelTextAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.HideLabelAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.LabelWidthAttribute"/>
<seealso cref="T:UnityEngine.TooltipAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.TitleAttribute"/>
<seealso cref="T:UnityEngine.HeaderAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.GUIColorAttribute"/>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.LabelWidthAttributeDrawer.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Draws the attribute.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.MinMaxSliderAttributeDrawer">
<summary>
Draws Vector2 properties marked with <see cref="T:Sirenix.OdinInspector.MinMaxSliderAttribute"/>.
</summary>
<seealso cref="T:Sirenix.OdinInspector.MinMaxSliderAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.MinValueAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.MaxValueAttribute"/>
<seealso cref="T:UnityEngine.RangeAttribute"/>
<seealso cref="T:UnityEngine.DelayedAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.WrapAttribute"/>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.MultiLineAttributeDrawer">
<summary>
Draws string properties marked with <see cref="T:UnityEngine.MultilineAttribute"/>.
This drawer only works for string fields, unlike <see cref="T:Sirenix.OdinInspector.Editor.Drawers.MultiLinePropertyAttributeDrawer"/>.
</summary>
<seealso cref="T:UnityEngine.MultilineAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.Editor.Drawers.MultiLineAttributeDrawer"/>
<seealso cref="T:Sirenix.OdinInspector.DisplayAsStringAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.InfoBoxAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.DetailedInfoBoxAttribute"/>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.MultiLineAttributeDrawer.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Draws the property.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.MultiLinePropertyAttributeDrawer">
<summary>
Draws string properties marked with <see cref="T:Sirenix.OdinInspector.MultiLinePropertyAttribute"/>.
This drawer works for both string field and properties, unlike <see cref="T:Sirenix.OdinInspector.Editor.Drawers.MultiLineAttributeDrawer"/>.
</summary>
<seealso cref="T:Sirenix.OdinInspector.MultiLinePropertyAttribute"/>
<seealso cref="T:UnityEngine.MultilineAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.DisplayAsStringAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.InfoBoxAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.DetailedInfoBoxAttribute"/>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.MultiLinePropertyAttributeDrawer.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Draws the property.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.NonSerializedShowInInspectorWarningAttributeDrawer">
<summary>
Draws a warning message for non-serialized properties that sports both the SerializeField and the ShowInInspector attribute.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.NonSerializedShowInInspectorWarningAttributeDrawer.CanDrawAttributeProperty(Sirenix.OdinInspector.Editor.InspectorProperty)">
<summary>
Determines if the drawer can draw the property.
</summary>
<param name="property">The property to test.</param>
<returns><c>true</c> if the drawer can draw the property; otherwise <c>false</c>.</returns>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.NonSerializedShowInInspectorWarningAttributeDrawer.Initialize">
<summary>
Initializes the drawer.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.NonSerializedShowInInspectorWarningAttributeDrawer.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Draws the warning message and calls the next drawer.
</summary>
<param name="label">The label for the property.</param>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.OdinSerializeAttributeWarningDrawer">
<summary>
<para>
When first learning to use the Odin Inspector, it is common for people to misunderstand the OdinSerialize attribute,
and use it in places where it does not achive the deceired goal.
</para>
<para>
This drawer will display a warning message if the OdinSerialize attribute is potentially used in such cases.
</para>
</summary>
<seealso cref="!:Sirenix.OdinInspector.Editor.OdinAttributeDrawer&lt;Sirenix.Serialization.OdinSerializeAttribute&gt;" />
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.OdinSerializeAttributeWarningDrawer.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Draws The Property.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.OnCollectionChangedAttributeDrawer">
<summary>
Draws properties marked with <see cref="T:Sirenix.OdinInspector.OnCollectionChangedAttribute"/>.
</summary>
<seealso cref="T:Sirenix.OdinInspector.OnCollectionChangedAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.OnValueChangedAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.OnInspectorGUIAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.ValidateInputAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.InfoBoxAttribute"/>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.OnInspectorGUIAttributeDrawer">
<summary>
Draws properties marked with <see cref="T:Sirenix.OdinInspector.OnInspectorGUIAttribute"/>.
Calls the method, the attribute is either attached to, or the method that has been specified in the attribute, to allow for custom GUI drawing.
</summary>
<seealso cref="T:Sirenix.OdinInspector.OnInspectorGUIAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.OnValueChangedAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.ValidateInputAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.DrawWithUnityAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.InlineEditorAttribute"/>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.OnInspectorGUIAttributeDrawer.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Draws the property.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.OnValueChangedAttributeDrawer`1">
<summary>
Draws properties marked with <see cref="T:Sirenix.OdinInspector.OnValueChangedAttribute"/>.
</summary>
<seealso cref="T:Sirenix.OdinInspector.OnCollectionChangedAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.OnValueChangedAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.OnInspectorGUIAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.ValidateInputAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.InfoBoxAttribute"/>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.PreviewFieldAttributeDrawer`1">
<summary>
Draws properties marked with <see cref="T:Sirenix.OdinInspector.PreviewFieldAttribute"/> as a square ObjectField which renders a preview for UnityEngine.Object types.
This object field also adds support for drag and drop, dragging an object to another square object field, swaps the values.
If you hold down control while letting go it will replace the value, And you can control + click the object field to quickly delete the value it holds.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.PreviewFieldAttributeDrawer`1.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Draws the property.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.BaseProgressBarAttributeDrawer`1">
<summary>
Common base implementation for progress bar attribute drawers.
</summary>
<typeparam name="T"></typeparam>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.BaseProgressBarAttributeDrawer`1.Initialize">
<summary>
Initialized the drawer.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.BaseProgressBarAttributeDrawer`1.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Draws the property.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.BaseProgressBarAttributeDrawer`1.DrawProgressBar(UnityEngine.Rect,UnityEngine.GUIContent,System.Double,System.Double,Sirenix.Utilities.Editor.ProgressBarConfig,System.String)">
<summary>
Generic implementation of progress bar field drawing.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.BaseProgressBarAttributeDrawer`1.ConvertToDouble(`0)">
<summary>
Converts the generic value to a double.
</summary>
<param name="value">The generic value to convert.</param>
<returns>The generic value as a double.</returns>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.ProgressBarAttributeByteDrawer">
<summary>
Draws values decorated with <see cref="T:Sirenix.OdinInspector.ProgressBarAttribute"/>.
</summary>
<seealso cref="T:Sirenix.OdinInspector.PropertyRangeAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.MinMaxSliderAttribute"/>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.ProgressBarAttributeByteDrawer.DrawProgressBar(UnityEngine.Rect,UnityEngine.GUIContent,System.Double,System.Double,Sirenix.Utilities.Editor.ProgressBarConfig,System.String)">
<summary>
Draws a progress bar for a byte property.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.ProgressBarAttributeByteDrawer.ConvertToDouble(System.Byte)">
<summary>
Converts the generic value to a double.
</summary>
<param name="value">The generic value to convert.</param>
<returns>The generic value as a double.</returns>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.ProgressBarAttributeSbyteDrawer">
<summary>
Draws values decorated with <see cref="T:Sirenix.OdinInspector.ProgressBarAttribute"/>.
</summary>
<seealso cref="T:Sirenix.OdinInspector.PropertyRangeAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.MinMaxSliderAttribute"/>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.ProgressBarAttributeSbyteDrawer.DrawProgressBar(UnityEngine.Rect,UnityEngine.GUIContent,System.Double,System.Double,Sirenix.Utilities.Editor.ProgressBarConfig,System.String)">
<summary>
Draws a progress bar for a sbyte property.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.ProgressBarAttributeSbyteDrawer.ConvertToDouble(System.SByte)">
<summary>
Converts the generic value to a double.
</summary>
<param name="value">The generic value to convert.</param>
<returns>The generic value as a double.</returns>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.ProgressBarAttributeShortDrawer">
<summary>
Draws values decorated with <see cref="T:Sirenix.OdinInspector.ProgressBarAttribute"/>.
</summary>
<seealso cref="T:Sirenix.OdinInspector.PropertyRangeAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.MinMaxSliderAttribute"/>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.ProgressBarAttributeShortDrawer.DrawProgressBar(UnityEngine.Rect,UnityEngine.GUIContent,System.Double,System.Double,Sirenix.Utilities.Editor.ProgressBarConfig,System.String)">
<summary>
Draws a progress bar for a short property.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.ProgressBarAttributeShortDrawer.ConvertToDouble(System.Int16)">
<summary>
Converts the generic value to a double.
</summary>
<param name="value">The generic value to convert.</param>
<returns>The generic value as a double.</returns>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.ProgressBarAttributeUshortDrawer">
<summary>
Draws values decorated with <see cref="T:Sirenix.OdinInspector.ProgressBarAttribute"/>.
</summary>
<seealso cref="T:Sirenix.OdinInspector.PropertyRangeAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.MinMaxSliderAttribute"/>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.ProgressBarAttributeUshortDrawer.DrawProgressBar(UnityEngine.Rect,UnityEngine.GUIContent,System.Double,System.Double,Sirenix.Utilities.Editor.ProgressBarConfig,System.String)">
<summary>
Draws a progress bar for a ushort property.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.ProgressBarAttributeUshortDrawer.ConvertToDouble(System.UInt16)">
<summary>
Converts the generic value to a double.
</summary>
<param name="value">The generic value to convert.</param>
<returns>The generic value as a double.</returns>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.ProgressBarAttributeIntDrawer">
<summary>
Draws values decorated with <see cref="T:Sirenix.OdinInspector.ProgressBarAttribute"/>.
</summary>
<seealso cref="T:Sirenix.OdinInspector.PropertyRangeAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.MinMaxSliderAttribute"/>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.ProgressBarAttributeIntDrawer.DrawProgressBar(UnityEngine.Rect,UnityEngine.GUIContent,System.Double,System.Double,Sirenix.Utilities.Editor.ProgressBarConfig,System.String)">
<summary>
Draws a progress bar for an int property.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.ProgressBarAttributeIntDrawer.ConvertToDouble(System.Int32)">
<summary>
Converts the generic value to a double.
</summary>
<param name="value">The generic value to convert.</param>
<returns>The generic value as a double.</returns>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.ProgressBarAttributeUintDrawer">
<summary>
Draws values decorated with <see cref="T:Sirenix.OdinInspector.ProgressBarAttribute"/>.
</summary>
<seealso cref="T:Sirenix.OdinInspector.PropertyRangeAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.MinMaxSliderAttribute"/>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.ProgressBarAttributeUintDrawer.DrawProgressBar(UnityEngine.Rect,UnityEngine.GUIContent,System.Double,System.Double,Sirenix.Utilities.Editor.ProgressBarConfig,System.String)">
<summary>
Draws a progress bar for a uint property.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.ProgressBarAttributeUintDrawer.ConvertToDouble(System.UInt32)">
<summary>
Converts the generic value to a double.
</summary>
<param name="value">The generic value to convert.</param>
<returns>The generic value as a double.</returns>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.ProgressBarAttributeLongDrawer">
<summary>
Draws values decorated with <see cref="T:Sirenix.OdinInspector.ProgressBarAttribute"/>.
</summary>
<seealso cref="T:Sirenix.OdinInspector.PropertyRangeAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.MinMaxSliderAttribute"/>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.ProgressBarAttributeLongDrawer.DrawProgressBar(UnityEngine.Rect,UnityEngine.GUIContent,System.Double,System.Double,Sirenix.Utilities.Editor.ProgressBarConfig,System.String)">
<summary>
Draws a progress bar for a long property.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.ProgressBarAttributeLongDrawer.ConvertToDouble(System.Int64)">
<summary>
Converts the generic value to a double.
</summary>
<param name="value">The generic value to convert.</param>
<returns>The generic value as a double.</returns>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.ProgressBarAttributeUlongDrawer">
<summary>
Draws values decorated with <see cref="T:Sirenix.OdinInspector.ProgressBarAttribute"/>.
</summary>
<seealso cref="T:Sirenix.OdinInspector.PropertyRangeAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.MinMaxSliderAttribute"/>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.ProgressBarAttributeUlongDrawer.DrawProgressBar(UnityEngine.Rect,UnityEngine.GUIContent,System.Double,System.Double,Sirenix.Utilities.Editor.ProgressBarConfig,System.String)">
<summary>
Draws a progress bar for a ulong property.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.ProgressBarAttributeUlongDrawer.ConvertToDouble(System.UInt64)">
<summary>
Converts the generic value to a double.
</summary>
<param name="value">The generic value to convert.</param>
<returns>The generic value as a double.</returns>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.ProgressBarAttributeFloatDrawer">
<summary>
Draws values decorated with <see cref="T:Sirenix.OdinInspector.ProgressBarAttribute"/>.
</summary>
<seealso cref="T:Sirenix.OdinInspector.PropertyRangeAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.MinMaxSliderAttribute"/>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.ProgressBarAttributeFloatDrawer.DrawProgressBar(UnityEngine.Rect,UnityEngine.GUIContent,System.Double,System.Double,Sirenix.Utilities.Editor.ProgressBarConfig,System.String)">
<summary>
Draws a progress bar for a float property.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.ProgressBarAttributeFloatDrawer.ConvertToDouble(System.Single)">
<summary>
Converts the generic value to a double.
</summary>
<param name="value">The generic value to convert.</param>
<returns>The generic value as a double.</returns>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.ProgressBarAttributedoubleDrawer">
<summary>
Draws values decorated with <see cref="T:Sirenix.OdinInspector.ProgressBarAttribute"/>.
</summary>
<seealso cref="T:Sirenix.OdinInspector.PropertyRangeAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.MinMaxSliderAttribute"/>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.ProgressBarAttributedoubleDrawer.DrawProgressBar(UnityEngine.Rect,UnityEngine.GUIContent,System.Double,System.Double,Sirenix.Utilities.Editor.ProgressBarConfig,System.String)">
<summary>
Draws a progress bar for a double property.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.ProgressBarAttributedoubleDrawer.ConvertToDouble(System.Double)">
<summary>
Converts the generic value to a double.
</summary>
<param name="value">The generic value to convert.</param>
<returns>The generic value as a double.</returns>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.ProgressBarAttributedecimalDrawer">
<summary>
Draws values decorated with <see cref="T:Sirenix.OdinInspector.ProgressBarAttribute"/>.
</summary>
<seealso cref="T:Sirenix.OdinInspector.PropertyRangeAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.MinMaxSliderAttribute"/>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.ProgressBarAttributedecimalDrawer.DrawProgressBar(UnityEngine.Rect,UnityEngine.GUIContent,System.Double,System.Double,Sirenix.Utilities.Editor.ProgressBarConfig,System.String)">
<summary>
Draws a progress bar for a decimal property.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.ProgressBarAttributedecimalDrawer.ConvertToDouble(System.Decimal)">
<summary>
Converts the generic value to a double.
</summary>
<param name="value">The generic value to convert.</param>
<returns>The generic value as a double.</returns>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.PropertyRangeAttributeByteDrawer">
<summary>
Draws byte properties marked with <see cref="T:Sirenix.OdinInspector.PropertyRangeAttribute"/>.
</summary>
<seealso cref="T:Sirenix.OdinInspector.PropertyRangeAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.MinValueAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.MaxValueAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.MinMaxSliderAttribute"/>
<seealso cref="T:UnityEngine.DelayedAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.WrapAttribute"/>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.PropertyRangeAttributeByteDrawer.Initialize">
<summary>
Initialized the drawer.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.PropertyRangeAttributeByteDrawer.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Draws the property.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.PropertyRangeAttributeDoubleDrawer">
<summary>
Draws double properties marked with <see cref="T:Sirenix.OdinInspector.PropertyRangeAttribute"/>.
</summary>
<seealso cref="T:Sirenix.OdinInspector.PropertyRangeAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.MinValueAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.MaxValueAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.MinMaxSliderAttribute"/>
<seealso cref="T:UnityEngine.DelayedAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.WrapAttribute"/>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.PropertyRangeAttributeDoubleDrawer.Initialize">
<summary>
Initialized the drawer.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.PropertyRangeAttributeDoubleDrawer.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Draws the property.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.PropertyRangeAttributeFloatDrawer">
<summary>
Draws float properties marked with <see cref="T:Sirenix.OdinInspector.PropertyRangeAttribute"/>.
</summary>
<seealso cref="T:Sirenix.OdinInspector.PropertyRangeAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.MinValueAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.MaxValueAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.MinMaxSliderAttribute"/>
<seealso cref="T:UnityEngine.DelayedAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.WrapAttribute"/>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.PropertyRangeAttributeFloatDrawer.Initialize">
<summary>
Initialized the drawer.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.PropertyRangeAttributeFloatDrawer.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Draws the property.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.PropertyRangeAttributeDecimalDrawer">
<summary>
Draws decimal properties marked with <see cref="T:Sirenix.OdinInspector.PropertyRangeAttribute"/>.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.PropertyRangeAttributeDecimalDrawer.Initialize">
<summary>
Initialized the drawer.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.PropertyRangeAttributeDecimalDrawer.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Draws the property.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.PropertyRangeAttributeInt16Drawer">
<summary>
Draws short properties marked with <see cref="T:Sirenix.OdinInspector.PropertyRangeAttribute"/>.
</summary>
<seealso cref="T:Sirenix.OdinInspector.PropertyRangeAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.MinValueAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.MaxValueAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.MinMaxSliderAttribute"/>
<seealso cref="T:UnityEngine.DelayedAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.WrapAttribute"/>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.PropertyRangeAttributeInt16Drawer.Initialize">
<summary>
Initialized the drawer.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.PropertyRangeAttributeInt16Drawer.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Draws the property.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.PropertyRangeAttributeInt32Drawer">
<summary>
Draws int properties marked with <see cref="T:Sirenix.OdinInspector.PropertyRangeAttribute"/>.
</summary>
<seealso cref="T:Sirenix.OdinInspector.PropertyRangeAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.MinValueAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.MaxValueAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.MinMaxSliderAttribute"/>
<seealso cref="T:UnityEngine.DelayedAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.WrapAttribute"/>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.PropertyRangeAttributeInt32Drawer.Initialize">
<summary>
Initialized the drawer.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.PropertyRangeAttributeInt32Drawer.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Draws the property.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.PropertyRangeAttributeInt64Drawer">
<summary>
Draws long properties marked with <see cref="T:Sirenix.OdinInspector.PropertyRangeAttribute"/>.
</summary>
<seealso cref="T:Sirenix.OdinInspector.PropertyRangeAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.MinValueAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.MaxValueAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.MinMaxSliderAttribute"/>
<seealso cref="T:UnityEngine.DelayedAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.WrapAttribute"/>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.PropertyRangeAttributeInt64Drawer.Initialize">
<summary>
Initialized the drawer.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.PropertyRangeAttributeInt64Drawer.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Draws the property.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.PropertyRangeAttributeSByteDrawer">
<summary>
Draws sbyte properties marked with <see cref="T:Sirenix.OdinInspector.PropertyRangeAttribute"/>.
</summary>
<seealso cref="T:Sirenix.OdinInspector.PropertyRangeAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.MinValueAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.MaxValueAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.MinMaxSliderAttribute"/>
<seealso cref="T:UnityEngine.DelayedAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.WrapAttribute"/>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.PropertyRangeAttributeSByteDrawer.Initialize">
<summary>
Initialized the drawer.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.PropertyRangeAttributeSByteDrawer.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Draws the property.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.PropertyRangeAttributeUInt16Drawer">
<summary>
Draws ushort properties marked with <see cref="T:Sirenix.OdinInspector.PropertyRangeAttribute"/>.
</summary>
<seealso cref="T:Sirenix.OdinInspector.PropertyRangeAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.MinValueAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.MaxValueAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.MinMaxSliderAttribute"/>
<seealso cref="T:UnityEngine.DelayedAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.WrapAttribute"/>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.PropertyRangeAttributeUInt16Drawer.Initialize">
<summary>
Initialized the drawer.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.PropertyRangeAttributeUInt16Drawer.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Draws the property.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.PropertyRangeAttributeUInt32Drawer">
<summary>
Draws uint properties marked with <see cref="T:Sirenix.OdinInspector.PropertyRangeAttribute"/>.
</summary>
<seealso cref="T:Sirenix.OdinInspector.PropertyRangeAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.MinValueAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.MaxValueAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.MinMaxSliderAttribute"/>
<seealso cref="T:UnityEngine.DelayedAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.WrapAttribute"/>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.PropertyRangeAttributeUInt32Drawer.Initialize">
<summary>
Initialized the drawer.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.PropertyRangeAttributeUInt32Drawer.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Draws the property.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.PropertyRangeAttributeUInt64Drawer">
<summary>
Draws ulong properties marked with <see cref="T:Sirenix.OdinInspector.PropertyRangeAttribute"/>.
</summary>
<seealso cref="T:Sirenix.OdinInspector.PropertyRangeAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.MinValueAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.MaxValueAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.MinMaxSliderAttribute"/>
<seealso cref="T:UnityEngine.DelayedAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.WrapAttribute"/>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.PropertyRangeAttributeUInt64Drawer.Initialize">
<summary>
Initialized the drawer.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.PropertyRangeAttributeUInt64Drawer.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Draws the property.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.PropertySpaceAttributeDrawer">
<summary>
Draws a space for properties marked with the PropertySpace attribute.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.PropertySpaceAttributeDrawer.Initialize">
<summary>
Initializes this instance.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.PropertySpaceAttributeDrawer.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Draws the property.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.RangeAttributeByteDrawer">
<summary>
Draws byte properties marked with <see cref="T:UnityEngine.RangeAttribute"/>.
</summary>
<seealso cref="T:UnityEngine.RangeAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.MinValueAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.MaxValueAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.MinMaxSliderAttribute"/>
<seealso cref="T:UnityEngine.DelayedAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.WrapAttribute"/>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.RangeAttributeByteDrawer.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Draws the property.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.RangeAttributeDoubleDrawer">
<summary>
Draws double properties marked with <see cref="T:UnityEngine.RangeAttribute"/>.
</summary>
<seealso cref="T:UnityEngine.RangeAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.MinValueAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.MaxValueAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.MinMaxSliderAttribute"/>
<seealso cref="T:UnityEngine.DelayedAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.WrapAttribute"/>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.RangeAttributeDoubleDrawer.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Draws the property.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.RangeAttributeFloatDrawer">
<summary>
Draws float properties marked with <see cref="T:UnityEngine.RangeAttribute"/>.
</summary>
<seealso cref="T:UnityEngine.RangeAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.MinValueAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.MaxValueAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.MinMaxSliderAttribute"/>
<seealso cref="T:UnityEngine.DelayedAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.WrapAttribute"/>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.RangeAttributeFloatDrawer.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Draws the property.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.RangeAttributeDecimalDrawer">
<summary>
Draws decimal properties marked with <see cref="T:UnityEngine.RangeAttribute"/>.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.RangeAttributeDecimalDrawer.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Draws the property.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.RangeAttributeInt16Drawer">
<summary>
Draws short properties marked with <see cref="T:UnityEngine.RangeAttribute"/>.
</summary>
<seealso cref="T:UnityEngine.RangeAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.MinValueAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.MaxValueAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.MinMaxSliderAttribute"/>
<seealso cref="T:UnityEngine.DelayedAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.WrapAttribute"/>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.RangeAttributeInt16Drawer.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Draws the property.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.RangeAttributeInt32Drawer">
<summary>
Draws int properties marked with <see cref="T:UnityEngine.RangeAttribute"/>.
</summary>
<seealso cref="T:UnityEngine.RangeAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.MinValueAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.MaxValueAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.MinMaxSliderAttribute"/>
<seealso cref="T:UnityEngine.DelayedAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.WrapAttribute"/>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.RangeAttributeInt32Drawer.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Draws the property.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.RangeAttributeInt64Drawer">
<summary>
Draws long properties marked with <see cref="T:UnityEngine.RangeAttribute"/>.
</summary>
<seealso cref="T:UnityEngine.RangeAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.MinValueAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.MaxValueAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.MinMaxSliderAttribute"/>
<seealso cref="T:UnityEngine.DelayedAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.WrapAttribute"/>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.RangeAttributeInt64Drawer.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Draws the property.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.RangeAttributeSByteDrawer">
<summary>
Draws sbyte properties marked with <see cref="T:UnityEngine.RangeAttribute"/>.
</summary>
<seealso cref="T:UnityEngine.RangeAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.MinValueAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.MaxValueAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.MinMaxSliderAttribute"/>
<seealso cref="T:UnityEngine.DelayedAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.WrapAttribute"/>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.RangeAttributeSByteDrawer.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Draws the property.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.RangeAttributeUInt16Drawer">
<summary>
Draws ushort properties marked with <see cref="T:UnityEngine.RangeAttribute"/>.
</summary>
<seealso cref="T:UnityEngine.RangeAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.MinValueAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.MaxValueAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.MinMaxSliderAttribute"/>
<seealso cref="T:UnityEngine.DelayedAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.WrapAttribute"/>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.RangeAttributeUInt16Drawer.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Draws the property.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.RangeAttributeUInt32Drawer">
<summary>
Draws uint properties marked with <see cref="T:UnityEngine.RangeAttribute"/>.
</summary>
<seealso cref="T:UnityEngine.RangeAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.MinValueAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.MaxValueAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.MinMaxSliderAttribute"/>
<seealso cref="T:UnityEngine.DelayedAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.WrapAttribute"/>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.RangeAttributeUInt32Drawer.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Draws the property.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.RangeAttributeUInt64Drawer">
<summary>
Draws ulong properties marked with <see cref="T:UnityEngine.RangeAttribute"/>.
</summary>
<seealso cref="T:UnityEngine.RangeAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.MinValueAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.MaxValueAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.MinMaxSliderAttribute"/>
<seealso cref="T:UnityEngine.DelayedAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.WrapAttribute"/>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.RangeAttributeUInt64Drawer.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Draws the property.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.ShowDrawerChainAttributeDrawer">
<summary>
Show drawer chain attribute drawer.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.ShowDrawerChainAttributeDrawer.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Draws the property.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.ShowPropertyResolverAttributeDrawer">
<summary>
Drawer for the ShowPropertyResolver attribute.
</summary>
<seealso cref="T:Sirenix.OdinInspector.ShowPropertyResolverAttribute" />
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.SpaceAttributeDrawer">
<summary>
Draws properties marked with <see cref="T:UnityEngine.SpaceAttribute"/>.
</summary>
<seealso cref="T:UnityEngine.SpaceAttribute"/>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.SpaceAttributeDrawer.Initialize">
<summary>
Initializes this instance.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.SpaceAttributeDrawer.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Draws the property.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.SuffixLabelAttributeDrawer">
<summary>
Draws properties marked with <see cref="T:Sirenix.OdinInspector.SuffixLabelAttribute"/>.
</summary>
<seealso cref="T:Sirenix.OdinInspector.LabelTextAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.PropertyTooltipAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.InlineButtonAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.CustomValueDrawerAttribute"/>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.SuffixLabelAttributeDrawer.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Draws the property.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.TextAreaAttributeDrawer">
<summary>
TextArea attribute drawer.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.TextAreaAttributeDrawer.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Draws the property in the Rect provided. This method does not support the GUILayout, and is only called by DrawPropertyImplementation if the GUICallType is set to Rect, which is not the default.
If the GUICallType is set to Rect, both GetRectHeight and DrawPropertyRect needs to be implemented.
If the GUICallType is set to GUILayout, implementing DrawPropertyLayout will suffice.
</summary>
<param name="label">The label. This can be null, so make sure your drawer supports that.</param>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.TitleAttributeDrawer">
<summary>
Draws properties marked with <see cref="T:Sirenix.OdinInspector.TitleAttribute"/>.
</summary>
<seealso cref="T:Sirenix.OdinInspector.TitleAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.TitleGroupAttribute"/>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.TitleAttributeDrawer.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Draws the property.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.ToggleAttributeDrawer">
<summary>
Draws properties marked with <see cref="T:Sirenix.OdinInspector.ToggleAttribute"/>.
</summary>
<seealso cref="T:Sirenix.OdinInspector.ToggleAttribute"/>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.ToggleAttributeDrawer.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Draws the property.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.ToggleLeftAttributeDrawer">
<summary>
Draws properties marked with <see cref="T:Sirenix.OdinInspector.ToggleLeftAttribute"/>.
</summary>
<seealso cref="T:Sirenix.OdinInspector.ToggleLeftAttribute"/>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.ToggleLeftAttributeDrawer.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Draws the property.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.TooltipAttributeDrawer">
<summary>
Draws properties marked with <see cref="T:UnityEngine.TooltipAttribute"/>.
</summary>
<seealso cref="T:UnityEngine.TooltipAttribute"/>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.TooltipAttributeDrawer.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Draws the property.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.PropertyTooltipAttributeDrawer">
<summary>
Draws properties marked with <see cref="T:Sirenix.OdinInspector.PropertyTooltipAttribute"/>.
</summary>
<seealso cref="T:Sirenix.OdinInspector.PropertyTooltipAttribute"/>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.PropertyTooltipAttributeDrawer.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Draws the property.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.TypeFilterAttributeDrawer">
<summary>
Draws properties marked with <see cref="T:Sirenix.OdinInspector.TypeFilterAttribute"/>.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.TypeFilterAttributeDrawer.Initialize">
<summary>
Initializes this instance.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.TypeFilterAttributeDrawer.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Draws the property with GUILayout support. This method is called by DrawPropertyImplementation if the GUICallType is set to GUILayout, which is the default.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.UnityDecoratorAttributeDrawer`3">
<summary>
Draws all Unity DecoratorDrawers within prepend attribute drawers within Odin.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.UnityDecoratorAttributeDrawer`3.#cctor">
<summary>
Initializes the <see cref="!:UnityDecoratorAttributeDrawer&lt;TDrawer, TAttribute&gt;"/> class.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.UnityDecoratorAttributeDrawer`3.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Draws the property.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.ValueDropdownAttributeDrawer">
<summary>
Draws properties marked with <see cref="T:Sirenix.OdinInspector.ValueDropdownAttribute"/>.
</summary>
<seealso cref="T:Sirenix.OdinInspector.ValueDropdownAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.ValueDropdownItem`1"/>
<summary>
Draws the property.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.ValueDropdownAttributeDrawer.Initialize">
<summary>
Initializes this instance.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.ValueDropdownAttributeDrawer.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Draws the property with GUILayout support. This method is called by DrawPropertyImplementation if the GUICallType is set to GUILayout, which is the default.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.Vector2IntMinMaxAttributeDrawer">
<summary>
Draws Vector2Int properties marked with <see cref="T:Sirenix.OdinInspector.MinMaxSliderAttribute"/>.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.Vector2IntMinMaxAttributeDrawer.Initialize">
<summary>
Initializes the drawer by resolving any optional references to members for min/max value.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.Vector2IntMinMaxAttributeDrawer.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Draws the property.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.Vector2IntDrawer">
<summary>
Vector2Int proprety drawer.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.Vector2IntDrawer.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Draws the property.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.Vector2IntDrawer.PopulateGenericMenu(Sirenix.OdinInspector.Editor.InspectorProperty,UnityEditor.GenericMenu)">
<summary>
Populates the generic menu for the property.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.Vector3IntDrawer">
<summary>
Vector3Int property drawer.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.Vector3IntDrawer.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Draws the property.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.Vector3IntDrawer.PopulateGenericMenu(Sirenix.OdinInspector.Editor.InspectorProperty,UnityEditor.GenericMenu)">
<summary>
Populates the generic menu for the property.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.BoxGroupAttributeDrawer">
<summary>
Draws all properties grouped together with the <see cref="T:Sirenix.OdinInspector.BoxGroupAttribute"/>
</summary>
<seealso cref="T:Sirenix.OdinInspector.BoxGroupAttribute"/>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.BoxGroupAttributeDrawer.Initialize">
<summary>
Initializes this instance.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.BoxGroupAttributeDrawer.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Draws the property.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.ButtonGroupAttributeDrawer">
<summary>
Draws all properties grouped together with the <see cref="T:Sirenix.OdinInspector.ButtonGroupAttribute"/>
</summary>
<seealso cref="T:Sirenix.OdinInspector.ButtonGroupAttribute"/>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.ButtonGroupAttributeDrawer.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Draws the property.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.FoldoutGroupAttributeDrawer">
<summary>
Draws all properties grouped together with the <see cref="T:Sirenix.OdinInspector.FoldoutGroupAttribute"/>
</summary>
<seealso cref="T:Sirenix.OdinInspector.FoldoutGroupAttribute"/>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.FoldoutGroupAttributeDrawer.Initialize">
<summary>
Initializes this instance.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.FoldoutGroupAttributeDrawer.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Draws the property.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.HorizontalGroupAttributeDrawer">
<summary>
Drawer for the <see cref="T:Sirenix.OdinInspector.HorizontalGroupAttribute"/>
</summary>
<seealso cref="T:Sirenix.OdinInspector.HorizontalGroupAttribute"/>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.HorizontalGroupAttributeDrawer.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Draws the property.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.ResponsiveButtonGroupAttributeDrawer">
<summary>
Drawer for the ResponsiveButtonGroupAttribute.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.ResponsiveButtonGroupAttributeDrawer.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Draws the property with GUILayout support.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.TabGroupAttributeDrawer">
<summary>
Draws all properties grouped together with the <see cref="T:Sirenix.OdinInspector.TabGroupAttribute"/>
</summary>
<seealso cref="T:Sirenix.OdinInspector.TabGroupAttribute"/>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.TabGroupAttributeDrawer.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Draws the property.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.TitleGroupAttributeDrawer">
<summary>
Draws properties marked with <see cref="T:Sirenix.OdinInspector.TitleGroupAttribute"/>.
</summary>
<seealso cref="T:Sirenix.OdinInspector.TitleGroupAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.TitleAttribute"/>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.TitleGroupAttributeDrawer.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Draws the property.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.ToggleGroupAttributeDrawer">
<summary>
Draws all properties grouped together with the <see cref="T:Sirenix.OdinInspector.ToggleGroupAttribute"/>
</summary>
<seealso cref="T:Sirenix.OdinInspector.ToggleGroupAttribute"/>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.ToggleGroupAttributeDrawer.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Draws the property.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.VerticalGroupAttributeDrawer">
<summary>
Drawer for the <see cref="T:Sirenix.OdinInspector.VerticalGroupAttribute"/>
</summary>
<seealso cref="T:Sirenix.OdinInspector.VerticalGroupAttribute"/>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.VerticalGroupAttributeDrawer.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Draws the property.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.DefaultMethodDrawer">
<summary>
The default method drawer that draws most buttons.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.DefaultMethodDrawer.Initialize">
<summary>
Initializes this instance.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.DefaultMethodDrawer.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Draws the property layout.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.NullableReferenceDrawer`1">
<summary>
Draws all nullable reference types, with an object field.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.NullableReferenceDrawer`1.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Draws the property.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.NullableReferenceDrawer`1.CanDrawValueProperty(Sirenix.OdinInspector.Editor.InspectorProperty)">
<summary>
Returns a value that indicates if this drawer can be used for the given property.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.PrimitiveValueConflictDrawer`1">
<summary>
Evaluates all strings, enums and primitive types and ensures EditorGUI.showMixedValue is true if there are any value conflicts in the current selection.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.PrimitiveValueConflictDrawer`1.CanDrawTypeFilter(System.Type)">
<summary>
Sets the drawer to only be evaluated on primitive types, strings and enums.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.PrimitiveValueConflictDrawer`1.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Draws the property.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.PropertyContextMenuDrawer.AddRightClickArea(Sirenix.OdinInspector.Editor.InspectorProperty,UnityEngine.Rect)">
<summary>
Adds the right click area.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.PropertyContextMenuDrawer.AddRightClickArea(Sirenix.OdinInspector.Editor.InspectorProperty,UnityEngine.Rect,System.Int32)">
<summary>
Adds the right click area.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.PropertyContextMenuDrawer`1">
<summary>
Opens a context menu for any given property on right click. The context menu is populated by all relevant drawers that implements <see cref="T:Sirenix.OdinInspector.Editor.IDefinesGenericMenuItems"/>.
</summary>
<seealso cref="T:Sirenix.OdinInspector.Editor.IDefinesGenericMenuItems"/>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.PropertyContextMenuDrawer`1.Initialize">
<summary>
Initializes the drawer.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.PropertyContextMenuDrawer`1.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Draws the property.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.ReferenceDrawer`1">
<summary>
Draws all reference type properties, which has already been drawn elsewhere. This drawer adds an additional foldout to prevent infinite draw depth.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.ReferenceDrawer`1.CanDrawTypeFilter(System.Type)">
<summary>
Prevents the drawer from being applied to UnityEngine.Object references since they are shown as an object field, and is not drawn in-line.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.ReferenceDrawer`1.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Draws the property.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.ReferencePathConflictDrawer`1">
<summary>
Draws properties with a <see cref="F:Sirenix.OdinInspector.Editor.PropertyValueState.ReferencePathConflict"/> set.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.ReferencePathConflictDrawer`1.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Draws the property.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.ReferenceValueConflictDrawer`1">
<summary>
<para>
When multiple objects are selected and inspected, this his drawer ensures UnityEditor.EditorGUI.showMixedValue
gets set to true if there are any conflicts in the selection for any given property.
Otherwise the next drawer is called.
</para>
<para>This drawer also implements <see cref="T:Sirenix.OdinInspector.Editor.IDefinesGenericMenuItems"/> and provides a right-click context menu item for resolving conflicts if any.</para>
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.ReferenceValueConflictDrawer`1.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Draws the property.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.AnimationCurveDrawer">
<summary>
Animation curve property drawer.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.BooleanDrawer">
<summary>
Bool property drawer.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.BooleanDrawer.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Draws the property.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.ByteDrawer">
<summary>
Byte property drawer.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.ByteDrawer.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Draws the property.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.CharDrawer">
<summary>
Char property drawer.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.CharDrawer.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Draws the property.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.CollectionDrawer`1">
<summary>
Property drawer for anything that has a <see cref="T:Sirenix.OdinInspector.Editor.ICollectionResolver"/>.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.CollectionDrawer`1.Initialize">
<summary>
Initializes the drawer.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.CollectionDrawer`1.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Draws the property.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.Color32Drawer">
<summary>
Color32 property drawer.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.Color32Drawer.DrawPropertyField(Sirenix.OdinInspector.Editor.IPropertyValueEntry{UnityEngine.Color32},UnityEngine.GUIContent)">
<summary>
Draws the property.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.ColorDrawer">
<summary>
Color property drawer.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.ColorDrawer.DrawPropertyField(Sirenix.OdinInspector.Editor.IPropertyValueEntry{UnityEngine.Color},UnityEngine.GUIContent)">
<summary>
Draws the property.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.ColorPaletteDrawer">
<summary>
Color palette property drawer.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.ColorPaletteDrawer.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Draws the property.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.CompositeDrawer">
<summary>
Drawer for composite properties.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.CompositeDrawer.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Draws the property.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.DecimalDrawer">
<summary>
Decimal property drawer.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.DecimalDrawer.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Draws the property.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.DelegateDrawer`1">
<summary>
Delegate property drawer. This drawer is rather simplistic for now, and will receive significant upgrades in the future.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.DelegateDrawer`1.CanDrawTypeFilter(System.Type)">
<summary>
See <see cref="M:Sirenix.OdinInspector.Editor.OdinDrawer.CanDrawTypeFilter(System.Type)"/>.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.DelegateDrawer`1.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Draws the property.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.DictionaryDrawer`3">
<summary>
Property drawer for <see cref="T:System.Collections.Generic.IDictionary`2"/>.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.DictionaryDrawer`3.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Draws the property.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.DoubleDrawer">
<summary>
Double property drawer.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.DoubleDrawer.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Draws the property.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.DrawWithUnityBaseDrawer`1">
<summary>
Base class to derive from for value drawers that merely wish to cause a value to be drawn by Unity.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.DrawWithUnityBaseDrawer`1.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Draws the property.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.EnumDrawer`1">
<summary>
Enum property drawer.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.EnumDrawer`1.CanDrawTypeFilter(System.Type)">
<summary>
Returns <c>true</c> if the drawer can draw the type.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.EnumDrawer`1.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Draws the property.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.GradientDrawer">
<summary>
Gradient property drawer.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.GuidDrawer">
<summary>
Int property drawer.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.GuidDrawer.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Draws the property.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.GUIStyleStateDrawer">
<summary>
The GUIStyleState Drawer
</summary>
<seealso cref="!:Sirenix.OdinInspector.Editor.OdinValueDrawer&lt;UnityEngine.GUIStyleState&gt;" />
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.GUIStyleStateDrawer.Initialize">
<summary>
Initializes this instance.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.GUIStyleStateDrawer.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Draws the property with GUILayout support.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.Int16Drawer">
<summary>
Short property drawer.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.Int16Drawer.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Draws the property.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.Int32Drawer">
<summary>
Int property drawer.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.Int32Drawer.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Draws the property.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.Int64Drawer">
<summary>
Long property drawer.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.Int64Drawer.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Draws the property.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.LayerMaskDrawer">
<summary>
LayerMask property drawer.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.LayerMaskDrawer.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Draws the property.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.NullableDrawer`1">
<summary>
Property drawer for nullables.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.NullableDrawer`1.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Draws the property.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.QuaternionDrawer">
<summary>
Quaternion property drawer.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.QuaternionDrawer.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Draws the property.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.QuaternionDrawer.PopulateGenericMenu(Sirenix.OdinInspector.Editor.InspectorProperty,UnityEditor.GenericMenu)">
<summary>
Populates the generic menu for the property.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.SByteDrawer">
<summary>
SByte property drawer.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.SByteDrawer.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Draws the property.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.SingleDrawer">
<summary>
Float property drawer.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.SingleDrawer.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Draws the property.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.StringDrawer">
<summary>
String property drawer.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.StringDrawer.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Draws the property.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.TableListAttributeDrawer">
<summary>
The TableList attirbute drawer.
</summary>
<seealso cref="T:Sirenix.OdinInspector.TableListAttribute"/>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.TableListAttributeDrawer.CanDrawAttributeProperty(Sirenix.OdinInspector.Editor.InspectorProperty)">
<summary>
Determines whether this instance [can draw attribute property] the specified property.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.TableListAttributeDrawer.Initialize">
<summary>
Initializes this instance.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.TableListAttributeDrawer.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Draws the property layout.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.TwoDimensionalArrayDrawer`2">
<summary>
Base class for two-dimensional array drawers.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.TwoDimensionalArrayDrawer`2.CanDrawTypeFilter(System.Type)">
<summary>
<para>Override this method in order to define custom type constraints to specify whether or not a type should be drawn by the drawer.</para>
<para>Note that Odin's <see cref="!:DrawerLocator" /> has full support for generic class constraints, so most often you can get away with not overriding CanDrawTypeFilter.</para>
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.TwoDimensionalArrayDrawer`2.GetDefaultTableMatrixAttributeSettings">
<summary>
Not yet documented.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.Drawers.TwoDimensionalArrayDrawer`2.TableMatrixAttribute">
<summary>
Not yet documented.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.TwoDimensionalArrayDrawer`2.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Draws the property.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.TwoDimensionalArrayDrawer`2.OnBeforeDrawTable(Sirenix.OdinInspector.Editor.IPropertyValueEntry{`0},Sirenix.OdinInspector.Editor.Drawers.TwoDimensionalArrayDrawer{`0,`1}.Context,UnityEngine.GUIContent)">
<summary>
This method gets called from DrawPropertyLayout right before the table and error message is drawn.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.TwoDimensionalArrayDrawer`2.CompareElement(`1,`1)">
<summary>
Compares the element.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.TwoDimensionalArrayDrawer`2.DrawElement(UnityEngine.Rect,`1)">
<summary>
Draws a table cell element.
</summary>
<param name="rect">The rect.</param>
<param name="value">The input value.</param>
<returns>The output value.</returns>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.TwoDimensionalGenericArrayDrawer`2.DrawElement(UnityEngine.Rect,`1)">
<summary>
Draws the element.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.TypeDrawer`1">
<summary>
Type property drawer
</summary>
<typeparam name="T"></typeparam>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.TypeDrawer`1.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Draws the property.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.UInt16Drawer">
<summary>
Ushort property drawer.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.UInt16Drawer.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Draws the property.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.UInt32Drawer">
<summary>
Uint property drawer.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.UInt32Drawer.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Draws the property.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.UInt64Drawer">
<summary>
Ulong property drawer.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.UInt64Drawer.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Draws the property.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.UnityEventDrawer`1">
<summary>
Unity event drawer.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.UnityEventDrawer`1.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Draws the property.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.UnityObjectDrawer`1">
<summary>
Unity object drawer.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.UnityObjectDrawer`1.Initialize">
<summary>
Initializes this instance.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.UnityObjectDrawer`1.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Draws the property.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.Vector2Drawer">
<summary>
Vector2 proprety drawer.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.Vector2Drawer.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Draws the property.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.Vector2Drawer.PopulateGenericMenu(Sirenix.OdinInspector.Editor.InspectorProperty,UnityEditor.GenericMenu)">
<summary>
Populates the generic menu for the property.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.Vector3Drawer">
<summary>
Vector3 property drawer.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.Vector3Drawer.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Draws the property.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.Vector3Drawer.PopulateGenericMenu(Sirenix.OdinInspector.Editor.InspectorProperty,UnityEditor.GenericMenu)">
<summary>
Populates the generic menu for the property.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Drawers.Vector4Drawer">
<summary>
Vector4 property drawer.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.Vector4Drawer.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Draws the property.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.Drawers.Vector4Drawer.PopulateGenericMenu(Sirenix.OdinInspector.Editor.InspectorProperty,UnityEditor.GenericMenu)">
<summary>
Populates the generic menu for the property.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.DrawWithUnityAttributeDrawer`1">
<summary>
Draws properties marked with <see cref="T:Sirenix.OdinInspector.DrawWithUnityAttribute"/>.
</summary>
<seealso cref="T:UnityEngine.RequireComponent"/>
<seealso cref="T:Sirenix.OdinInspector.OnInspectorGUIAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.InlineEditorAttribute"/>
<seealso cref="T:UnityEngine.HideInInspector"/>
</member>
<member name="M:Sirenix.OdinInspector.Editor.DrawWithUnityAttributeDrawer`1.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Draws the property.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.WrapAttributeInt16Drawer">
<summary>
Draws short properties marked with <see cref="T:Sirenix.OdinInspector.WrapAttribute"/>.
</summary>
<seealso cref="T:Sirenix.OdinInspector.WrapAttribute"/>
</member>
<member name="M:Sirenix.OdinInspector.Editor.WrapAttributeInt16Drawer.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Not yet documented.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.WrapAttributeInt32Drawer">
<summary>
Draws int properties marked with <see cref="T:Sirenix.OdinInspector.WrapAttribute"/>.
</summary>
<seealso cref="T:Sirenix.OdinInspector.WrapAttribute"/>
</member>
<member name="M:Sirenix.OdinInspector.Editor.WrapAttributeInt32Drawer.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Not yet documented.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.WrapAttributeInt64Drawer">
<summary>
Draws long properties marked with <see cref="T:Sirenix.OdinInspector.WrapAttribute"/>.
</summary>
<seealso cref="T:Sirenix.OdinInspector.WrapAttribute"/>
</member>
<member name="M:Sirenix.OdinInspector.Editor.WrapAttributeInt64Drawer.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Not yet documented.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.WrapAttributeFloatDrawer">
<summary>
Draws float properties marked with <see cref="T:Sirenix.OdinInspector.WrapAttribute"/>.
</summary>
<seealso cref="T:Sirenix.OdinInspector.WrapAttribute"/>
</member>
<member name="M:Sirenix.OdinInspector.Editor.WrapAttributeFloatDrawer.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Not yet documented.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.WrapAttributeDoubleDrawer">
<summary>
Draws double properties marked with <see cref="T:Sirenix.OdinInspector.WrapAttribute"/>.
</summary>
<seealso cref="T:Sirenix.OdinInspector.WrapAttribute"/>
</member>
<member name="M:Sirenix.OdinInspector.Editor.WrapAttributeDoubleDrawer.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Not yet documented.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.WrapAttributeDecimalDrawer">
<summary>
Draws decimal properties marked with <see cref="T:Sirenix.OdinInspector.WrapAttribute"/>.
</summary>
<seealso cref="T:Sirenix.OdinInspector.WrapAttribute"/>
</member>
<member name="M:Sirenix.OdinInspector.Editor.WrapAttributeDecimalDrawer.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Not yet documented.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.WrapAttributeVector2Drawer">
<summary>
Draws Vector2 properties marked with <see cref="T:Sirenix.OdinInspector.WrapAttribute"/>.
</summary>
<seealso cref="T:Sirenix.OdinInspector.WrapAttribute"/>
</member>
<member name="M:Sirenix.OdinInspector.Editor.WrapAttributeVector2Drawer.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Not yet documented.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.WrapAttributeVector3Drawer">
<summary>
Draws Vector3 properties marked with <see cref="T:Sirenix.OdinInspector.WrapAttribute"/>.
</summary>
<seealso cref="T:Sirenix.OdinInspector.WrapAttribute"/>
</member>
<member name="M:Sirenix.OdinInspector.Editor.WrapAttributeVector3Drawer.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Not yet documented.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.WrapAttributeVector4Drawer">
<summary>
Draws Vector4 properties marked with <see cref="T:Sirenix.OdinInspector.WrapAttribute"/>.
</summary>
<seealso cref="T:Sirenix.OdinInspector.WrapAttribute"/>
</member>
<member name="M:Sirenix.OdinInspector.Editor.WrapAttributeVector4Drawer.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Not yet documented.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.MethodDrawer">
<summary>
Base drawer to inherit from to draw methods.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.OdinAttributeDrawer`1">
<summary>
<para>
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 <see cref="T:Sirenix.OdinInspector.Editor.OdinAttributeDrawer`2"/> if you want to only support specific types.
</para>
<para>
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.
</para>
<para>
Also note that Odin does not require that your custom attribute inherits from Unity's PropertyAttribute.
</para>
</summary>
<typeparam name="TAttribute">The attribute that this drawer should be applied to.</typeparam>
<remarks>
Checkout the manual for more information.
</remarks>
<example>
<para>Example using the <see cref="T:Sirenix.OdinInspector.Editor.OdinAttributeDrawer`2"/>.</para>
<code>
[AttributeUsage(AttributeTargets.Field | AttributeTargets.Property, AllowMultiple = false)]
public class CustomRangeAttribute : System.Attribute
{
public float Min;
public float Max;
public CustomRangeAttribute(float min, float max)
{
this.Min = min;
this.Max = max;
}
}
// Remember to wrap your custom attribute drawer within a #if UNITY_EDITOR condition, or locate the file inside an Editor folder.
public sealed class CustomRangeAttributeDrawer : OdinAttributeDrawer&lt;CustomRangeAttribute, float&gt;
{
protected override void DrawPropertyLayout(GUIContent label)
{
this.ValueEntry.SmartValue = EditorGUILayout.Slider(label, this.ValueEntry.SmartValue, this.Attribute.Min, this.Attribute.Max);
}
}
// Usage:
public class MyComponent : MonoBehaviour
{
[CustomRangeAttribute(0, 1)]
public float MyFloat;
}
</code>
</example>
<example>
<para>Example using the <see cref="T:Sirenix.OdinInspector.Editor.OdinAttributeDrawer`1"/>.</para>
<code>
[AttributeUsage(AttributeTargets.Field | AttributeTargets.Property, AllowMultiple = false)]
public class GUITintColorAttribute : System.Attribute
{
public Color Color;
public GUITintColorAttribute(float r, float g, float b, float a = 1)
{
this.Color = new Color(r, g, b, a);
}
}
// Remember to wrap your custom attribute drawer within a #if UNITY_EDITOR condition, or locate the file inside an Editor folder.
public sealed class GUITintColorAttributeDrawer : OdinAttributeDrawer&lt;GUITintColorAttribute&gt;
{
protected override void DrawPropertyLayout(GUIContent label)
{
Color prevColor = GUI.color;
GUI.color *= this.Attribute.Color;
this.CallNextDrawer(label);
GUI.color = prevColor;
}
}
// Usage:
public class MyComponent : MonoBehaviour
{
[GUITintColor(0, 1, 0)]
public float MyFloat;
}
</code>
</example>
<example>
<para>
Odin uses multiple drawers to draw any given property, and the order in which these drawers are
called are defined using the <see cref="T:Sirenix.OdinInspector.Editor.DrawerPriorityAttribute"/>.
Your custom drawer injects itself into this chain of drawers based on its <see cref="T:Sirenix.OdinInspector.Editor.DrawerPriorityAttribute"/>.
If no <see cref="T:Sirenix.OdinInspector.Editor.DrawerPriorityAttribute"/> is defined, a priority is generated automatically based on the type of the drawer.
Each drawer can ether choose to draw the property or not, or pass on the responsibility to the
next drawer by calling CallNextDrawer(), as the f attribute does in the example above.
</para>
<para>
This means that there is no guarantee that your drawer will be called, sins other drawers
could have a higher priority than yours and choose not to call CallNextDrawer().
</para>
<para>
Note that Odin's <see cref="T:Sirenix.OdinInspector.Editor.DefaultDrawerChainResolver" /> has full support for generic class constraints,
and if that is not enough, you can also add additional type constraints by overriding CanDrawTypeFilter
</para>
<para>
Also note that all custom property drawers needs to handle cases where the label provided by the DrawPropertyLayout is null,
otherwise exceptions will be thrown when in cases where the label is hidden. For instance when [HideLabel] is used, or the property is drawn within a list where labels are also not shown.
</para>
<code>
[DrawerPriority(DrawerPriorityLevel.AttributePriority)]
public sealed class MyCustomAttributeDrawer&lt;T&gt; : OdinAttributeDrawer&lt;MyCustomAttribute, T&gt; where T : class
{
public override bool CanDrawTypeFilter(Type type)
{
return type != typeof(string);
}
protected override void DrawPropertyLayout(GUIContent label)
{
// Draw property here.
}
}
</code>
</example>
<seealso cref="T:Sirenix.OdinInspector.Editor.OdinAttributeDrawer`2"/>
<seealso cref="T:Sirenix.OdinInspector.Editor.OdinValueDrawer`1"/>
<seealso cref="T:Sirenix.OdinInspector.Editor.OdinGroupDrawer`1"/>
<seealso cref="T:Sirenix.OdinInspector.Editor.OdinDrawer"/>
<seealso cref="T:Sirenix.OdinInspector.Editor.InspectorProperty"/>
<seealso cref="T:Sirenix.OdinInspector.Editor.OdinDrawerAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.Editor.DrawerPriorityAttribute"/>
<seealso cref="!:DrawerLocator"/>
<seealso cref="T:Sirenix.OdinInspector.Editor.InspectorUtilities"/>
<seealso cref="T:Sirenix.OdinInspector.Editor.PropertyTree"/>
<seealso cref="T:Sirenix.Utilities.Editor.GUIHelper"/>
<seealso cref="T:Sirenix.Utilities.Editor.SirenixEditorGUI"/>
</member>
<member name="P:Sirenix.OdinInspector.Editor.OdinAttributeDrawer`1.Attribute">
<summary>
Gets the attribute that the OdinAttributeDrawer draws for.
</summary>
</member>
<member name="F:Sirenix.OdinInspector.Editor.OdinAttributeDrawer`1.AllowsMultipleAttributes">
<summary>
Tells whether or not multiple attributes are allowed.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinAttributeDrawer`1.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Draws the property with the given label.
Override this to implement your custom OdinAttributeDrawer.
</summary>
<param name="label">Optional label for the property.</param>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinAttributeDrawer`1.CanDrawProperty(Sirenix.OdinInspector.Editor.InspectorProperty)">
<summary>
Tests if the drawer can draw for the specified property.
</summary>
<param name="property">The property to test.</param>
<returns><c>true</c> if the drawer can drawn the property. Otherwise <c>false</c>.</returns>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinAttributeDrawer`1.CanDrawAttributeProperty(Sirenix.OdinInspector.Editor.InspectorProperty)">
<summary>
Tests if the attribute drawer can draw for the specified property.
</summary>
<param name="property">The property to test.</param>
<returns><c>true</c> if the drawer can drawn the property. Otherwise <c>false</c>.</returns>
</member>
<member name="T:Sirenix.OdinInspector.Editor.OdinAttributeDrawer`2">
<summary>
<para>
Base class for all type specific attribute drawers. For non-type specific attribute drawers see <see cref="T:Sirenix.OdinInspector.Editor.OdinAttributeDrawer`2"/>.
</para>
<para>
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.
</para>
<para>
Also note that Odin does not require that your custom attribute inherits from Unity's PropertyAttribute.
</para>
</summary>
<typeparam name="TAttribute">The attribute that this drawer should be applied to.</typeparam>
<typeparam name="TValue">The type of the value the drawer should be drawing. Note that Odin's <see cref="T:Sirenix.OdinInspector.Editor.DefaultDrawerChainResolver"/> has full support for generic constraints.</typeparam>
<remarks>
Checkout the manual for more information.
</remarks>
<example>
<para>Example using the <see cref="T:Sirenix.OdinInspector.Editor.OdinAttributeDrawer`2"/>.</para>
<code>
[AttributeUsage(AttributeTargets.Field | AttributeTargets.Property, AllowMultiple = false)]
public class CustomRangeAttribute : System.Attribute
{
public float Min;
public float Max;
public CustomRangeAttribute(float min, float max)
{
this.Min = min;
this.Max = max;
}
}
// Remember to wrap your custom attribute drawer within a #if UNITY_EDITOR condition, or locate the file inside an Editor folder.
public sealed class CustomRangeAttributeDrawer : OdinAttributeDrawer&lt;CustomRangeAttribute, float&gt;
{
protected override void DrawPropertyLayout(GUIContent label)
{
this.ValueEntry.SmartValue = EditorGUILayout.Slider(label, this.ValueEntry.SmartValue, this.Attribute.Min, this.Attribute.Max);
}
}
// Usage:
public class MyComponent : MonoBehaviour
{
[CustomRangeAttribute(0, 1)]
public float MyFloat;
}
</code>
</example>
<example>
<para>Example using the <see cref="T:Sirenix.OdinInspector.Editor.OdinAttributeDrawer`1"/>.</para>
<code>
[AttributeUsage(AttributeTargets.Field | AttributeTargets.Property, AllowMultiple = false)]
public class GUITintColorAttribute : System.Attribute
{
public Color Color;
public GUITintColorAttribute(float r, float g, float b, float a = 1)
{
this.Color = new Color(r, g, b, a);
}
}
// Remember to wrap your custom attribute drawer within a #if UNITY_EDITOR condition, or locate the file inside an Editor folder.
public sealed class GUITintColorAttributeDrawer : OdinAttributeDrawer&lt;GUITintColorAttribute&gt;
{
protected override void DrawPropertyLayout(GUIContent label)
{
Color prevColor = GUI.color;
GUI.color *= this.Attribute.Color;
this.CallNextDrawer(label);
GUI.color = prevColor;
}
}
// Usage:
public class MyComponent : MonoBehaviour
{
[GUITintColor(0, 1, 0)]
public float MyFloat;
}
</code>
</example>
<example>
<para>
Odin uses multiple drawers to draw any given property, and the order in which these drawers are
called is defined using the <see cref="T:Sirenix.OdinInspector.Editor.DrawerPriorityAttribute"/>.
Your custom drawer injects itself into this chain of drawers based on its <see cref="T:Sirenix.OdinInspector.Editor.DrawerPriorityAttribute"/>.
If no <see cref="T:Sirenix.OdinInspector.Editor.DrawerPriorityAttribute"/> is defined, a priority is generated automatically based on the type of the drawer.
Each drawer can ether choose to draw the property or not, or pass on the responsibility to the
next drawer by calling CallNextDrawer(), as the GUITintColor attribute does in the example above.
</para>
<para>
This means that there is no guarantee that your drawer will be called, since other drawers
could have a higher priority than yours and choose not to call CallNextDrawer().
</para>
<para>
Note that Odin's <see cref="T:Sirenix.OdinInspector.Editor.DefaultDrawerChainResolver" /> has full support for generic class constraints,
and if that is not enough, you can also add additional type constraints by overriding CanDrawTypeFilter
</para>
<para>
Also note that all custom property drawers needs to handle cases where the label provided by the DrawPropertyLayout is null,
otherwise exceptions will be thrown when in cases where the label is hidden. For instance when [HideLabel] is used, or the property is drawn within a list where labels are also not shown.
</para>
<code>
[DrawerPriority(DrawerPriorityLevel.AttributePriority)]
public class MyCustomAttributeDrawer&lt;T&gt; : OdinAttributeDrawer&lt;MyCustomAttribute, T&gt; where T : class
{
public override bool CanDrawTypeFilter(Type type)
{
return type != typeof(string);
}
protected override void DrawPropertyLayout(GUIContent label)
{
// Draw property here.
}
}
</code>
</example>
<seealso cref="T:Sirenix.OdinInspector.Editor.OdinAttributeDrawer`1"/>
<seealso cref="T:Sirenix.OdinInspector.Editor.OdinValueDrawer`1"/>
<seealso cref="T:Sirenix.OdinInspector.Editor.OdinGroupDrawer`1"/>
<seealso cref="T:Sirenix.OdinInspector.Editor.OdinDrawer"/>
<seealso cref="T:Sirenix.OdinInspector.Editor.InspectorProperty"/>
<seealso cref="T:Sirenix.OdinInspector.Editor.OdinDrawerAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.Editor.DrawerPriorityAttribute"/>
<seealso cref="!:DrawerLocator"/>
<seealso cref="T:Sirenix.OdinInspector.Editor.InspectorUtilities"/>
<seealso cref="T:Sirenix.OdinInspector.Editor.PropertyTree"/>
<seealso cref="T:Sirenix.Utilities.Editor.GUIHelper"/>
<seealso cref="T:Sirenix.Utilities.Editor.SirenixEditorGUI"/>
</member>
<member name="P:Sirenix.OdinInspector.Editor.OdinAttributeDrawer`2.ValueEntry">
<summary>
Gets the strongly typed ValueEntry of the OdinAttributeDrawer's property.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinAttributeDrawer`2.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Draws the property with the given label.
Override this to implement your custom OdinAttributeDrawer.
</summary>
<param name="label">Optional label for the property.</param>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinAttributeDrawer`2.CanDrawAttributeProperty(Sirenix.OdinInspector.Editor.InspectorProperty)">
<summary>
Tests if the drawer can draw for the specified property.
</summary>
<param name="property">The property to test.</param>
<returns><c>true</c> if the drawer can drawn the property. Otherwise <c>false</c>.</returns>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinAttributeDrawer`2.CanDrawAttributeValueProperty(Sirenix.OdinInspector.Editor.InspectorProperty)">
<summary>
Tests if the attribute drawer can draw for the specified property.
</summary>
<param name="property">The property to test.</param>
<returns><c>true</c> if the drawer can drawn the property. Otherwise <c>false</c>.</returns>
</member>
<member name="T:Sirenix.OdinInspector.Editor.OdinDrawer">
<summary>
<para>
Base class for all Odin drawers. In order to create your own custom drawers you need to derive from one of the following drawers:
</para>
<list type="bullet">
<item><see cref="T:Sirenix.OdinInspector.Editor.OdinAttributeDrawer`1"/></item>
<item><see cref="T:Sirenix.OdinInspector.Editor.OdinAttributeDrawer`2"/></item>
<item><see cref="T:Sirenix.OdinInspector.Editor.OdinValueDrawer`1"/></item>
<item><see cref="T:Sirenix.OdinInspector.Editor.OdinGroupDrawer`1"/></item>
</list>
<para>Remember to provide your custom drawer with an <see cref="T:Sirenix.OdinInspector.Editor.OdinDrawerAttribute"/> in order for it to be located by the <see cref="!:DrawerLocator"/>.</para>
<para>Drawers require a <see cref="T:Sirenix.OdinInspector.Editor.PropertyTree"/> context, and are instantiated automatically by the <see cref="!:DrawerLocator"/>.</para>
<para>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.</para>
</summary>
<seealso cref="T:Sirenix.OdinInspector.Editor.OdinAttributeDrawer`1"/>
<seealso cref="T:Sirenix.OdinInspector.Editor.OdinAttributeDrawer`2"/>
<seealso cref="T:Sirenix.OdinInspector.Editor.OdinValueDrawer`1"/>
<seealso cref="T:Sirenix.OdinInspector.Editor.OdinGroupDrawer`1"/>
<seealso cref="T:Sirenix.OdinInspector.Editor.InspectorProperty"/>
<seealso cref="T:Sirenix.OdinInspector.Editor.OdinDrawerAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.Editor.DrawerPriorityAttribute"/>
<seealso cref="!:DrawerLocator"/>
<seealso cref="T:Sirenix.OdinInspector.Editor.InspectorUtilities"/>
<seealso cref="T:Sirenix.OdinInspector.Editor.PropertyTree"/>
<seealso cref="T:Sirenix.Utilities.Editor.GUIHelper"/>
<seealso cref="T:Sirenix.Utilities.Editor.SirenixEditorGUI"/>
</member>
<member name="P:Sirenix.OdinInspector.Editor.OdinDrawer.SkipWhenDrawing">
<summary>
If <c>true</c> then this drawer will be skipped in the draw chain. Otherwise the drawer will be called as normal in the draw chain.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.OdinDrawer.Initialized">
<summary>
Gets a value indicating if the drawer has been initialized yet.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.OdinDrawer.Property">
<summary>
Gets the property this drawer draws for.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinDrawer.CanDrawTypeFilter(System.Type)">
<summary>
<para>Override this method in order to define custom type constraints to specify whether or not a type should be drawn by the drawer.</para>
<para>Note that Odin's <see cref="!:DrawerLocator" /> has full support for generic class constraints, so most often you can get away with not overriding CanDrawTypeFilter.</para>
</summary>
<param name="type">The type.</param>
<returns>
Returns true by default, unless overridden.
</returns>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinDrawer.Initialize(Sirenix.OdinInspector.Editor.InspectorProperty)">
<summary>
Initializes the drawer instance.
</summary>
<param name="property"></param>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinDrawer.Initialize">
<summary>
Initializes the drawer instance. Override this to implement your own initialization logic.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinDrawer.DrawProperty(UnityEngine.GUIContent)">
<summary>
Draws the property with a custom label.
</summary>
<param name="label">The label. Null is allow if you wish no label should be drawn.</param>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinDrawer.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Draws the property with GUILayout support.
</summary>
<param name="label">The label. This can be null, so make sure your drawer supports that.</param>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinDrawer.CallNextDrawer(UnityEngine.GUIContent)">
<summary>
Calls the next drawer in the draw chain.
</summary>
<param name="label">The label to pass on to the next drawer.</param>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinDrawer.CanDrawProperty(Sirenix.OdinInspector.Editor.InspectorProperty)">
<summary>
Gets a value indicating if the drawer can draw for the specified property.
Override this to implement a custom property filter for your drawer.
</summary>
<param name="property">The property to test.</param>
<returns><c>true</c> if the drawer can draw for the property. Otherwise <c>false</c>.</returns>
</member>
<member name="T:Sirenix.OdinInspector.Editor.OdinDrawerExtensions">
<summary>
OdinDrawer extensions.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinDrawerExtensions.GetPersistentValue``1(Sirenix.OdinInspector.Editor.OdinDrawer,System.String,``0)">
<summary>
Gets a persistent value that will survive past multiple Unity Editor Application sessions.
The value is stored in the PersistentContextCache, which has a customizable max cache size.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinEditor.DrawDefaultInspector">
<summary>
Draws the default Odin inspector.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinEditor.DrawUnityInspector">
<summary>
Draws the default Unity inspector.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinEditor.OnInspectorGUI">
<summary>
Not yet documented.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinEditor.DrawTree">
<summary>
Draws the property tree.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinEditor.OnDisable">
<summary>
Called by Unity.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinEditor.OnEnable">
<summary>
Called by Unity.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.OdinGroupDrawer`1">
<summary>
<para>
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.
</para>
<para>
Note that all box group attributes needs to inherit from the <see cref="T:Sirenix.OdinInspector.PropertyGroupAttribute"/>
</para>
<para>
Remember to provide your custom drawer with an <see cref="T:Sirenix.OdinInspector.Editor.OdinDrawerAttribute"/>
in order for it to be located by the <see cref="!:DrawerLocator"/>.
</para>
</summary>
<remarks>
Checkout the manual for more information.
</remarks>
<example>
<code>
[AttributeUsage(AttributeTargets.Field | AttributeTargets.Property | AttributeTargets.Method, AllowMultiple = false, Inherited = true)]
public class MyBoxGroupAttribute : PropertyGroupAttribute
{
public MyBoxGroupAttribute(string group, float order = 0) : base(group, order)
{
}
}
// Remember to wrap your custom group drawer within a #if UNITY_EDITOR condition, or locate the file inside an Editor folder.
public class BoxGroupAttributeDrawer : OdinGroupDrawer&lt;MyBoxGroupAttribute&gt;
{
protected override void DrawPropertyGroupLayout(InspectorProperty property, MyBoxGroupAttribute attribute, GUIContent label)
{
GUILayout.BeginVertical("box");
for (int i = 0; i &lt; property.Children.Count; i++)
{
InspectorUtilities.DrawProperty(property.Children[i]);
}
GUILayout.EndVertical();
}
}
// Usage:
public class MyComponent : MonoBehaviour
{
[MyBoxGroup("MyGroup")]
public int A;
[MyBoxGroup("MyGroup")]
public int B;
[MyBoxGroup("MyGroup")]
public int C;
}
</code>
</example>
<seealso cref="T:Sirenix.OdinInspector.Editor.OdinAttributeDrawer`1"/>
<seealso cref="T:Sirenix.OdinInspector.Editor.OdinAttributeDrawer`2"/>
<seealso cref="T:Sirenix.OdinInspector.Editor.OdinValueDrawer`1"/>
<seealso cref="T:Sirenix.OdinInspector.Editor.OdinDrawer"/>
<seealso cref="T:Sirenix.OdinInspector.Editor.InspectorProperty"/>
<seealso cref="T:Sirenix.OdinInspector.Editor.OdinDrawerAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.Editor.DrawerPriorityAttribute"/>
<seealso cref="!:DrawerLocator"/>
<seealso cref="T:Sirenix.OdinInspector.Editor.InspectorUtilities"/>
<seealso cref="T:Sirenix.OdinInspector.Editor.PropertyTree"/>
<seealso cref="T:Sirenix.Utilities.Editor.GUIHelper"/>
<seealso cref="T:Sirenix.Utilities.Editor.SirenixEditorGUI"/>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinGroupDrawer`1.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Draws the property with GUILayout support.
</summary>
<param name="label">The label. This can be null, so make sure your drawer supports that.</param>
</member>
<member name="T:Sirenix.OdinInspector.Editor.OdinValueDrawer`1">
<summary>
<para>
Base class for all value drawers. Use this class to create your own custom drawers for any specific type.
</para>
<para>
Remember to provide your custom drawer with an <see cref="T:Sirenix.OdinInspector.Editor.OdinDrawerAttribute"/>
in order for it to be located by the <see cref="!:DrawerLocator"/>.
</para>
<para>
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.
</para>
</summary>
<remarks>
Checkout the manual for more information.
</remarks>
<example>
<code>
public class MyCustomBaseType
{
}
public class MyCustomType : MyCustomBaseType
{
}
// Remember to wrap your custom attribute drawer within a #if UNITY_EDITOR condition, or locate the file inside an Editor folder.
public sealed class MyCustomBaseTypeDrawer&lt;T&gt; : OdinValueDrawer&lt;T&gt; where T : MyCustomBaseType
{
protected override void DrawPropertyLayout(IPropertyValueEntry&lt;T&gt; entry, GUIContent label)
{
T value = entry.SmartValue;
// Draw your custom drawer here using GUILayout and EditorGUILAyout.
}
}
// Usage:
// Both values will be drawn using the MyCustomBaseTypeDrawer
public class MyComponent : SerializedMonoBehaviour
{
public MyCustomBaseType A;
public MyCustomType B;
}
</code>
</example>
<example>
<para>
Odin uses multiple drawers to draw any given property, and the order in which these drawers are
called are defined using the <see cref="T:Sirenix.OdinInspector.Editor.DrawerPriorityAttribute"/>.
Your custom drawer injects itself into this chain of drawers based on its <see cref="T:Sirenix.OdinInspector.Editor.DrawerPriorityAttribute"/>.
If no <see cref="T:Sirenix.OdinInspector.Editor.DrawerPriorityAttribute"/> is defined, a priority is generated automatically based on the type of the drawer.
Each drawer can ether choose to draw the property or not, or pass on the responsibility to the
next drawer by calling CallNextDrawer(). An example of this is provided in the documentation for <see cref="T:Sirenix.OdinInspector.Editor.OdinAttributeDrawer`2"/>.
</para>
<para>
This means that there is no guarantee that your drawer will be called, sins other drawers
could have a higher priority than yours and choose not to call CallNextDrawer().
</para>
<para>
To avoid this, you can tell Odin, that your drawer is a PrependDecorator or an AppendDecorator drawer (see <see cref="!:OdinDrawerBehaviour"/>) as shown in the example shows below.
Prepend and append decorators are always drawn and are also ordered by the <see cref="!:OdinDrawerBehaviour"/>.
</para>
<para>
Note that Odin's <see cref="!:DrawerLocator" /> have full support for generic class constraints,
and if that is not enough, you can also add additional type constraints by overriding CanDrawTypeFilter(Type type).
</para>
<para>
Also note that all custom property drawers needs to handle cases where the label provided by the DrawPropertyLayout is null,
otherwise exceptions will be thrown when in cases where the label is hidden. For instance when [HideLabel] is used, or the property is drawn within a list where labels are also not shown.
</para>
<code>
// [OdinDrawer(OdinDrawerBehaviour.DrawProperty)] // default
// [OdinDrawer(OdinDrawerBehaviour.AppendDecorator)]
[OdinDrawer(OdinDrawerBehaviour.PrependDecorator)]
[DrawerPriority(DrawerPriorityLevel.AttributePriority)]
public sealed class MyCustomTypeDrawer&lt;T&gt; : OdinValueDrawer&lt;T&gt; where T : MyCustomType
{
public override bool CanDrawTypeFilter(Type type)
{
return type != typeof(SomeType);
}
protected override void DrawPropertyLayout(IPropertyValueEntry&lt;T&gt; entry, GUIContent label)
{
T value = entry.SmartValue;
// Draw property here.
}
}
</code>
</example>
<seealso cref="T:Sirenix.OdinInspector.Editor.OdinAttributeDrawer`2"/>
<seealso cref="T:Sirenix.OdinInspector.Editor.OdinAttributeDrawer`1"/>
<seealso cref="T:Sirenix.OdinInspector.Editor.OdinValueDrawer`1"/>
<seealso cref="T:Sirenix.OdinInspector.Editor.OdinGroupDrawer`1"/>
<seealso cref="T:Sirenix.OdinInspector.Editor.OdinDrawer"/>
<seealso cref="T:Sirenix.OdinInspector.Editor.InspectorProperty"/>
<seealso cref="T:Sirenix.OdinInspector.Editor.OdinDrawerAttribute"/>
<seealso cref="T:Sirenix.OdinInspector.Editor.DrawerPriorityAttribute"/>
<seealso cref="!:DrawerLocator"/>
<seealso cref="T:Sirenix.OdinInspector.Editor.InspectorUtilities"/>
<seealso cref="T:Sirenix.OdinInspector.Editor.PropertyTree"/>
<seealso cref="T:Sirenix.Utilities.Editor.GUIHelper"/>
<seealso cref="T:Sirenix.Utilities.Editor.SirenixEditorGUI"/>
</member>
<member name="P:Sirenix.OdinInspector.Editor.OdinValueDrawer`1.ValueEntry">
<summary>
The value entry of the property.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinValueDrawer`1.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Draws the property with GUILayout support.
</summary>
<param name="label">The label. This can be null, so make sure your drawer supports that.</param>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinValueDrawer`1.CanDrawProperty(Sirenix.OdinInspector.Editor.InspectorProperty)">
<summary>
Gets a value indicating if the drawer can draw for the specified property.
</summary>
<param name="property">The property to test.</param>
<returns><c>true</c> if the drawer can draw for the property. Otherwise <c>false</c>.</returns>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinValueDrawer`1.CanDrawValueProperty(Sirenix.OdinInspector.Editor.InspectorProperty)">
<summary>
Gets a value indicating if the drawer can draw for the specified property.
Override this to implement a custom property filter for your drawer.
</summary>
<param name="property">The property to test.</param>
<returns><c>true</c> if the drawer can draw for the property. Otherwise <c>false</c>.</returns>
</member>
<member name="T:Sirenix.OdinInspector.Editor.AbstractTypeUnityPropertyDrawer`3">
<summary>
Unity property drawer for abstract types.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.AbstractTypeUnityPropertyDrawer`3.#ctor">
<summary>
Initializes the property drawer.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.AbstractTypeUnityPropertyDrawer`3.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Draws the property.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.PrimitiveCompositeDrawer`1">
<summary>
Property drawer for primitive composite properties.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PrimitiveCompositeDrawer`1.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Draws the property.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PrimitiveCompositeDrawer`1.DrawPropertyField(Sirenix.OdinInspector.Editor.IPropertyValueEntry{`0},UnityEngine.GUIContent)">
<summary>
Draws the property field.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.UnityPropertyAttributeDrawer`3">
<summary>
Unity property attribute drawer.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.UnityPropertyAttributeDrawer`3.#ctor">
<summary>
Initializes the drawer.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.UnityPropertyAttributeDrawer`3.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Draws the proprety.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.UnityPropertyDrawer`2">
<summary>
Unity property drawer.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.UnityPropertyDrawer`2.#ctor">
<summary>
Initializes the property drawer.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.UnityPropertyDrawer`2.DrawPropertyLayout(UnityEngine.GUIContent)">
<summary>
Draws the property.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Examples.AttributeExampleInfo">
<summary>
Descripes an attribute example.
</summary>
</member>
<member name="F:Sirenix.OdinInspector.Editor.Examples.AttributeExampleInfo.ExampleType">
<summary>
The type of the example object.
</summary>
</member>
<member name="F:Sirenix.OdinInspector.Editor.Examples.AttributeExampleInfo.Name">
<summary>
The name of the example.
</summary>
</member>
<member name="F:Sirenix.OdinInspector.Editor.Examples.AttributeExampleInfo.Description">
<summary>
The description of the example.
</summary>
</member>
<member name="F:Sirenix.OdinInspector.Editor.Examples.AttributeExampleInfo.Code">
<summary>
Raw code of the example.
</summary>
</member>
<member name="F:Sirenix.OdinInspector.Editor.Examples.AttributeExampleInfo.CodeAsComponent">
<summary>
The example declared as a Unity component.
</summary>
</member>
<member name="F:Sirenix.OdinInspector.Editor.Examples.AttributeExampleInfo.Order">
<summary>
Sorting value of the example. Examples with lower order values should come before examples with higher order values.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.Examples.AttributeExampleInfo.PreviewObject">
<summary>
Preview object of the example.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.AllowGUIEnabledForReadonlyAttribute">
<summary>
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.
</summary>
<example>
<code>
[AllowGUIEnabledForReadonly]
public sealed class SomeDrawerDrawer&lt;T&gt; : OdinValueDrawer&lt;T&gt; where T : class
{
}
</code>
</example>
</member>
<member name="T:Sirenix.OdinInspector.Editor.AttributeListExtensions">
<summary>
Extension method for List&lt;Attribute&gt;
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.AttributeListExtensions.HasAttribute``1(System.Collections.Generic.IList{System.Attribute})">
<summary>
Determines whether the list contains a specific attribute type.
</summary>
<typeparam name="T">The type of attribute.</typeparam>
<param name="attributeList">The attribute list.</param>
<returns>
<c>true</c> if the specified attribute list has attribute; otherwise, <c>false</c>.
</returns>
</member>
<member name="M:Sirenix.OdinInspector.Editor.AttributeListExtensions.GetOrAddAttribute``1(System.Collections.Generic.List{System.Attribute})">
<summary>
Adds a new instance of the given type of attribute if it's not in the list.
</summary>
<typeparam name="T">The type of attribute.</typeparam>
<param name="attributeList">The attribute list.</param>
<returns></returns>
</member>
<member name="M:Sirenix.OdinInspector.Editor.AttributeListExtensions.GetAttribute``1(System.Collections.Generic.IList{System.Attribute})">
<summary>
Gets the first instance of an attribute of the given type in the list.
</summary>
<typeparam name="T">The type of attribute.</typeparam>
<param name="attributeList">The attribute list.</param>
<returns></returns>
</member>
<member name="M:Sirenix.OdinInspector.Editor.AttributeListExtensions.Add``1(System.Collections.Generic.List{System.Attribute})">
<summary>
Adds a new instance of the attribute to the list.
</summary>
<typeparam name="T">The type of attribute.</typeparam>
<param name="attributeList">The attribute list.</param>
<returns></returns>
</member>
<member name="M:Sirenix.OdinInspector.Editor.AttributeListExtensions.RemoveAttributeOfType``1(System.Collections.Generic.List{System.Attribute})">
<summary>
Removes all instances of the given type in the list.
</summary>
<typeparam name="T">The type of attribute.</typeparam>
<param name="attributeList">The attribute list.</param>
<returns></returns>
</member>
<member name="T:Sirenix.OdinInspector.Editor.DrawerPriority">
<summary>
<para>
DrawerPriority is used in conjunction with <see cref="T:Sirenix.OdinInspector.Editor.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.
</para>
</summary>
<seealso cref="T:Sirenix.OdinInspector.Editor.DrawerPriorityLevel"/>
<seealso cref="T:Sirenix.OdinInspector.Editor.DrawerPriorityAttribute"/>
</member>
<member name="F:Sirenix.OdinInspector.Editor.DrawerPriority.AutoPriority">
<summary>
Auto priority is defined by setting all of the components to zero.
If no <see cref="T:Sirenix.OdinInspector.Editor.DrawerPriorityAttribute"/> is defined on a drawer, it will default to AutoPriority.
</summary>
</member>
<member name="F:Sirenix.OdinInspector.Editor.DrawerPriority.ValuePriority">
<summary>
The standard priority. Mostly used by <see cref="T:Sirenix.OdinInspector.Editor.OdinValueDrawer`1"/>s.
</summary>
</member>
<member name="F:Sirenix.OdinInspector.Editor.DrawerPriority.AttributePriority">
<summary>
The attribute priority. Mostly used by <see cref="T:Sirenix.OdinInspector.Editor.OdinAttributeDrawer`2"/>s.
</summary>
</member>
<member name="F:Sirenix.OdinInspector.Editor.DrawerPriority.WrapperPriority">
<summary>
The wrapper priority. Mostly used by drawers used to decorate properties.
</summary>
</member>
<member name="F:Sirenix.OdinInspector.Editor.DrawerPriority.SuperPriority">
<summary>
The super priority. Mostly used by drawers that wants to wrap the entire property but don't draw the actual property.
These drawers typically don't draw the property itself, and calls CallNextDrawer.
</summary>
</member>
<member name="F:Sirenix.OdinInspector.Editor.DrawerPriority.Value">
<summary>
The value priority. Mostly used by <see cref="T:Sirenix.OdinInspector.Editor.OdinValueDrawer`1"/>s and <see cref="T:Sirenix.OdinInspector.Editor.OdinAttributeDrawer`2"/>s.
</summary>
</member>
<member name="F:Sirenix.OdinInspector.Editor.DrawerPriority.Wrapper">
<summary>
The wrapper priority. Mostly used by drawers used to decorate properties.
</summary>
</member>
<member name="F:Sirenix.OdinInspector.Editor.DrawerPriority.Super">
<summary>
The super priority. Mostly used by drawers that wants to wrap the entire property but don't draw the actual property.
These drawers typically don't draw the property itself, and calls CallNextDrawer.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.DrawerPriority.#ctor(Sirenix.OdinInspector.Editor.DrawerPriorityLevel)">
<summary>
Initializes a new instance of the <see cref="T:Sirenix.OdinInspector.Editor.DrawerPriority"/> struct.
</summary>
<param name="priority">The priority.</param>
</member>
<member name="M:Sirenix.OdinInspector.Editor.DrawerPriority.#ctor(System.Double,System.Double,System.Double)">
<summary>
Initializes a new instance of the <see cref="T:Sirenix.OdinInspector.Editor.DrawerPriority"/> struct.
</summary>
<param name="super">
The super priority. Mostly used by drawers that wants to wrap the entire property but don't draw the actual property.
These drawers typically don't draw the property itself, and calls CallNextDrawer.</param>
<param name="wrapper">The wrapper priority. Mostly used by drawers used to decorate properties.</param>
<param name="value">The value priority. Mostly used by <see cref="T:Sirenix.OdinInspector.Editor.OdinValueDrawer`1"/>s and <see cref="T:Sirenix.OdinInspector.Editor.OdinAttributeDrawer`2"/>s.</param>
</member>
<member name="M:Sirenix.OdinInspector.Editor.DrawerPriority.op_GreaterThan(Sirenix.OdinInspector.Editor.DrawerPriority,Sirenix.OdinInspector.Editor.DrawerPriority)">
<summary>
Implements the operator &gt;.
</summary>
<param name="lhs">The LHS.</param>
<param name="rhs">The RHS.</param>
<returns>
The result of the operator.
</returns>
</member>
<member name="M:Sirenix.OdinInspector.Editor.DrawerPriority.op_LessThan(Sirenix.OdinInspector.Editor.DrawerPriority,Sirenix.OdinInspector.Editor.DrawerPriority)">
<summary>
Implements the operator &lt;.
</summary>
<param name="lhs">The LHS.</param>
<param name="rhs">The RHS.</param>
<returns>
The result of the operator.
</returns>
</member>
<member name="M:Sirenix.OdinInspector.Editor.DrawerPriority.op_LessThanOrEqual(Sirenix.OdinInspector.Editor.DrawerPriority,Sirenix.OdinInspector.Editor.DrawerPriority)">
<summary>
Implements the operator &lt;=.
</summary>
<param name="lhs">The LHS.</param>
<param name="rhs">The RHS.</param>
<returns>
The result of the operator.
</returns>
</member>
<member name="M:Sirenix.OdinInspector.Editor.DrawerPriority.op_GreaterThanOrEqual(Sirenix.OdinInspector.Editor.DrawerPriority,Sirenix.OdinInspector.Editor.DrawerPriority)">
<summary>
Implements the operator &gt;=.
</summary>
<param name="lhs">The LHS.</param>
<param name="rhs">The RHS.</param>
<returns>
The result of the operator.
</returns>
</member>
<member name="M:Sirenix.OdinInspector.Editor.DrawerPriority.op_Addition(Sirenix.OdinInspector.Editor.DrawerPriority,Sirenix.OdinInspector.Editor.DrawerPriority)">
<summary>
Implements the operator +.
</summary>
<param name="lhs">The LHS.</param>
<param name="rhs">The RHS.</param>
<returns>
The result of the operator.
</returns>
</member>
<member name="M:Sirenix.OdinInspector.Editor.DrawerPriority.op_Subtraction(Sirenix.OdinInspector.Editor.DrawerPriority,Sirenix.OdinInspector.Editor.DrawerPriority)">
<summary>
Implements the operator -.
</summary>
<param name="lhs">The LHS.</param>
<param name="rhs">The RHS.</param>
<returns>
The result of the operator.
</returns>
</member>
<member name="M:Sirenix.OdinInspector.Editor.DrawerPriority.op_Equality(Sirenix.OdinInspector.Editor.DrawerPriority,Sirenix.OdinInspector.Editor.DrawerPriority)">
<summary>
Implements the operator ==.
</summary>
<param name="lhs">The LHS.</param>
<param name="rhs">The RHS.</param>
<returns>
The result of the operator.
</returns>
</member>
<member name="M:Sirenix.OdinInspector.Editor.DrawerPriority.op_Inequality(Sirenix.OdinInspector.Editor.DrawerPriority,Sirenix.OdinInspector.Editor.DrawerPriority)">
<summary>
Implements the operator !=.
</summary>
<param name="lhs">The LHS.</param>
<param name="rhs">The RHS.</param>
<returns>
The result of the operator.
</returns>
</member>
<member name="M:Sirenix.OdinInspector.Editor.DrawerPriority.GetPriorityLevel">
<summary>
Gets the priority level.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.DrawerPriority.ToString">
<summary>
Returns a <see cref="T:System.String" /> that represents this instance.
</summary>
<returns>
A <see cref="T:System.String" /> that represents this instance.
</returns>
</member>
<member name="M:Sirenix.OdinInspector.Editor.DrawerPriority.ToString(System.String)">
<summary>
Returns a <see cref="T:System.String" /> that represents this instance.
</summary>
<param name="format">The format.</param>
<returns>
A <see cref="T:System.String" /> that represents this instance.
</returns>
</member>
<member name="M:Sirenix.OdinInspector.Editor.DrawerPriority.Equals(System.Object)">
<summary>
Determines whether the specified <see cref="T:System.Object" />, is equal to this instance.
</summary>
<param name="obj">The <see cref="T:System.Object" /> to compare with this instance.</param>
<returns>
<c>true</c> if the specified <see cref="T:System.Object" /> is equal to this instance; otherwise, <c>false</c>.
</returns>
</member>
<member name="M:Sirenix.OdinInspector.Editor.DrawerPriority.GetHashCode">
<summary>
Returns a hash code for this instance.
</summary>
<returns>
A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table.
</returns>
</member>
<member name="M:Sirenix.OdinInspector.Editor.DrawerPriority.Equals(Sirenix.OdinInspector.Editor.DrawerPriority)">
<summary>
Equals the specified other.
</summary>
<param name="other">The other.</param>
<returns></returns>
</member>
<member name="M:Sirenix.OdinInspector.Editor.DrawerPriority.CompareTo(Sirenix.OdinInspector.Editor.DrawerPriority)">
<summary>
Compares to.
</summary>
<param name="other">The other.</param>
<returns></returns>
</member>
<member name="T:Sirenix.OdinInspector.Editor.DrawerPriorityAttribute">
<summary>
<para>DrawerPriority is used on inspector drawers and indicates the priority of the drawer.</para>
<para>Use this to make your custom drawer to come before or after other drawers, and potentially hide other drawers.</para>
</summary>
<example>
<para>The following example shows how DrawerPriority could be apply to a value drawer.</para>
<code>
[DrawerPriority(DrawerPriorityLevel.ValuePriority)]
public sealed class MyIntDrawer : InspectorValuePropertyDrawer&lt;int&gt;
{
// ...
}
</code>
</example>
<example>
<para>The following example shows how DrawerPriority is used to mark a custom int drawer as a high priority drawer.</para>
<code>
[DrawerPriority(1, 0, 0)]
public sealed class MySpecialIntDrawer : InspectorValuePropertyDrawer&lt;int&gt;
{
// ...
}
</code>
</example>
<seealso cref="T:Sirenix.OdinInspector.Editor.DrawerPriority"/>
<seealso cref="T:Sirenix.OdinInspector.Editor.DrawerPriorityLevel"/>
</member>
<member name="P:Sirenix.OdinInspector.Editor.DrawerPriorityAttribute.Priority">
<summary>
The priority of the drawer.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.DrawerPriorityAttribute.#ctor(Sirenix.OdinInspector.Editor.DrawerPriorityLevel)">
<summary>
Indicates the priority of an inspector drawer.
</summary>
<param name="priority">Option for priority for the inspector drawer.</param>
</member>
<member name="M:Sirenix.OdinInspector.Editor.DrawerPriorityAttribute.#ctor(System.Double,System.Double,System.Double)">
<summary>
Indicates the priority of an inspector drawer.
</summary>
<param name="super">
The super priority. Mostly used by drawers that wants to wrap the entire property but don't draw the actual property.
These drawers typically don't draw the property itself, and calls CallNextDrawer.</param>
<param name="wrapper">The wrapper priority. Mostly used by drawers used to decorate properties.</param>
<param name="value">The value priority. Mostly used by <see cref="T:Sirenix.OdinInspector.Editor.OdinValueDrawer`1"/>s and <see cref="T:Sirenix.OdinInspector.Editor.OdinAttributeDrawer`2"/>s.</param>
</member>
<member name="T:Sirenix.OdinInspector.Editor.DrawerPriorityLevel">
<summary>
<para>
DrawerPriorityLevel is used in conjunction with <see cref="T:Sirenix.OdinInspector.Editor.DrawerPriority"/>.
</para>
</summary>
<seealso cref="T:Sirenix.OdinInspector.Editor.DrawerPriority"/>
<seealso cref="T:Sirenix.OdinInspector.Editor.DrawerPriorityAttribute"/>
</member>
<member name="F:Sirenix.OdinInspector.Editor.DrawerPriorityLevel.AutoPriority">
<summary>
Auto priority is defined by setting all of the components to zero.
If no <see cref="T:Sirenix.OdinInspector.Editor.DrawerPriorityAttribute"/> is defined on a drawer, it will default to AutoPriority.
</summary>
</member>
<member name="F:Sirenix.OdinInspector.Editor.DrawerPriorityLevel.ValuePriority">
<summary>
The value priority. Mostly used by <see cref="T:Sirenix.OdinInspector.Editor.OdinValueDrawer`1"/>s.
</summary>
</member>
<member name="F:Sirenix.OdinInspector.Editor.DrawerPriorityLevel.AttributePriority">
<summary>
The attribute priority. Mostly used by <see cref="T:Sirenix.OdinInspector.Editor.OdinAttributeDrawer`2"/>s.
</summary>
</member>
<member name="F:Sirenix.OdinInspector.Editor.DrawerPriorityLevel.WrapperPriority">
<summary>
The wrapper priority. Mostly used by drawers used to decorate properties.
</summary>
</member>
<member name="F:Sirenix.OdinInspector.Editor.DrawerPriorityLevel.SuperPriority">
<summary>
The super priority. Mostly used by drawers that wants to wrap the entire property but don't draw the actual property.
These drawers typically don't draw the property itself, and calls CallNextDrawer.
</summary>
</member>
<member name="F:Sirenix.OdinInspector.Editor.DrawerUtilities.ExcludeUnityDrawers">
<summary>
Odin has its own implementations for these attribute drawers; never use Unity's.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.DrawerUtilities.GetDrawerPriority(System.Type)">
<summary>
Gets the priority of a given drawer type.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.EmittedMonoBehaviour">
<summary>
Base class for emitted MonoBehaviour-derived types that have been created by the <see cref="T:Sirenix.OdinInspector.Editor.UnityPropertyEmitter"/>.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.EmittedMonoBehaviour.BackingFieldInfo">
<summary>
The field that backs the value of this MonoBehaviour.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.EmittedMonoBehaviour.SetWeakValue(System.Object)">
<summary>
Sets the value contained in this scriptable object.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.EmittedMonoBehaviour.GetWeakValue">
<summary>
Gets the value contained in this scriptable object.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.EmittedMonoBehaviour`1">
<summary>
Strongly typed base class for emitted MonoBehaviour-derived types that have been created by the <see cref="T:Sirenix.OdinInspector.Editor.UnityPropertyEmitter"/>.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.EmittedMonoBehaviour`1.SetWeakValue(System.Object)">
<summary>
Sets the value contained in this scriptable object.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.EmittedMonoBehaviour`1.GetWeakValue">
<summary>
Gets the value contained in this scriptable object.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.EmittedMonoBehaviour`1.SetValue(`0)">
<summary>
Sets the value contained in this scriptable object.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.EmittedMonoBehaviour`1.GetValue">
<summary>
Gets the value contained in this scriptable object.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.EmittedScriptableObject">
<summary>
Base class for emitted ScriptableObject-derived types that have been created by the <see cref="T:Sirenix.OdinInspector.Editor.UnityPropertyEmitter"/>.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.EmittedScriptableObject.BackingFieldInfo">
<summary>
The field that backs the value of this scriptable object.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.EmittedScriptableObject.SetWeakValue(System.Object)">
<summary>
Sets the value contained in this scriptable object.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.EmittedScriptableObject.GetWeakValue">
<summary>
Gets the value contained in this scriptable object.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.EmittedScriptableObject`1">
<summary>
Strongly typed base class for emitted scriptable object types that have been created by the <see cref="T:Sirenix.OdinInspector.Editor.UnityPropertyEmitter"/>.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.EmittedScriptableObject`1.SetWeakValue(System.Object)">
<summary>
Sets the value contained in this scriptable object.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.EmittedScriptableObject`1.GetWeakValue">
<summary>
Gets the value contained in this scriptable object.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.EmittedScriptableObject`1.SetValue(`0)">
<summary>
Sets the value contained in this scriptable object.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.EmittedScriptableObject`1.GetValue">
<summary>
Gets the value contained in this scriptable object.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.ExceptionExtensions.UnwrapException(System.Exception)">
<summary>
Unwraps TargetInvocationException and TypeInitializationException
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.FixUnityAboutWindowBeforeEmit">
<summary>
<para>This class fixes Unity's about window, by invoking "UnityEditor.VisualStudioIntegration.UnityVSSupport.GetAboutWindowLabel" before any dynamic assemblies have been defined.</para>
<para>This is because dynamic assemblies in the current AppDomain break that method, and Unity's about window depends on it.</para>
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.FixUnityAssemblyVersionResolution">
<summary>
<para>
If you mark any of Unity's assemblies with the [AssemblyVersion] attribute to get a rolling assembly
version that changes sometimes (or all the time), Odin's hardcoded assembly references to user types
will break.
</para>
<para>
To fix this case, and all other cases of references to wrongly versioned Unity types not being resolved,
we overload the app domain's type resolution and resolve Unity user assemblies properly regardless of
version.
</para>
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.FixUnityScriptableObjectDirtying">
<summary>
This class fixes a bug where Unity's Undo.RecordObject does not mark ScriptableObjects dirty when
a change is recorded for them. It does this by subscribing to the Undo.postprocessModifications
event, and marking all modified ScriptableObjects dirty manually.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.GUICallType">
<summary>
Specifies hows any given drawer should drawer the property.
Changing this behavior, also changes which methods should be overridden in the drawer.
</summary>
<seealso cref="T:Sirenix.OdinInspector.Editor.OdinValueDrawer`1"/>
<seealso cref="T:Sirenix.OdinInspector.Editor.OdinAttributeDrawer`2"/>
<seealso cref="T:Sirenix.OdinInspector.Editor.OdinAttributeDrawer`1"/>
<seealso cref="T:Sirenix.OdinInspector.Editor.OdinGroupDrawer`1"/>
</member>
<member name="F:Sirenix.OdinInspector.Editor.GUICallType.GUILayout">
<summary>
GUILayout enabled the use of GUILayout, EditorGUILayout and <see cref="T:Sirenix.Utilities.Editor.SirenixEditorGUI"/>
</summary>
</member>
<member name="F:Sirenix.OdinInspector.Editor.GUICallType.Rect">
<summary>
Draws the property using Unity's GUI, and EditorGUI.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.InspectorPropertyValueGetter`1">
<summary>
Helper class to get values from InspectorProperties. This class is deprecated and fully replaced by <see cref="T:Sirenix.OdinInspector.Editor.ValueResolvers.ValueResolver" />.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.InspectorPropertyValueGetter`1.ErrorMessage">
<summary>
If any error occurred while looking for members, it will be stored here.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.InspectorPropertyValueGetter`1.MemberInfo">
<summary>
Gets the referenced member information.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.InspectorPropertyValueGetter`1.GetValue">
<summary>
Gets the value.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.InspectorPropertyValueGetter`1.GetValues">
<summary>
Gets all values from all targets.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.InspectorUtilities">
<summary>
Provides a variety of miscellaneous utilities widely used in the inspector.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.InspectorUtilities.ConvertToDeepReflectionPath(System.String)">
<summary>
Converts an Odin property path to a deep reflection path.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.InspectorUtilities.ConvertToUnityPropertyPath(System.String)">
<summary>
Converts an Odin property path (without groups included) into a Unity property path.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.InspectorUtilities.BeginDrawPropertyTree(Sirenix.OdinInspector.Editor.PropertyTree,System.Boolean)">
<summary>
Prepares a property tree for drawing, and handles management of undo, as well as marking scenes and drawn assets dirty.
</summary>
<param name="tree">The tree to be drawn.</param>
<param name="withUndo">Whether to register undo commands for the changes made to the tree. This can only be set to true if the tree has a <see cref="T:UnityEditor.SerializedObject"/> to represent.</param>
<exception cref="T:System.ArgumentNullException">tree is null</exception>
</member>
<member name="M:Sirenix.OdinInspector.Editor.InspectorUtilities.EndDrawPropertyTree(Sirenix.OdinInspector.Editor.PropertyTree)">
<summary>
Ends drawing a property tree, and handles management of undo, as well as marking scenes and drawn assets dirty.
</summary>
<param name="tree">The tree.</param>
</member>
<member name="M:Sirenix.OdinInspector.Editor.InspectorUtilities.DrawPropertiesInTree(Sirenix.OdinInspector.Editor.PropertyTree)">
<summary>
Draws all properties in a given property tree; must be wrapped by a <see cref="M:Sirenix.OdinInspector.Editor.InspectorUtilities.BeginDrawPropertyTree(Sirenix.OdinInspector.Editor.PropertyTree,System.Boolean)"/> and <see cref="M:Sirenix.OdinInspector.Editor.InspectorUtilities.EndDrawPropertyTree(Sirenix.OdinInspector.Editor.PropertyTree)"/>.
</summary>
<param name="tree">The tree to be drawn.</param>
</member>
<member name="M:Sirenix.OdinInspector.Editor.InspectorUtilities.DrawProperty(Sirenix.OdinInspector.Editor.InspectorProperty,UnityEngine.GUIContent)">
<summary>
Draws a property in the inspector using a given label.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.OdinPropertyException">
<summary>
Odin property system exception.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinPropertyException.#ctor(System.String,System.Exception)">
<summary>
Initializes a new instance of OdinPropertyException.
</summary>
<param name="message">The message for the exception.</param>
<param name="innerException">An inner exception.</param>
</member>
<member name="T:Sirenix.OdinInspector.Editor.ITemporaryContext">
<summary>
Custom types used by the <see cref="!:TemporaryPropertyContext&lt;T&gt;"/> can choose to implement the ITemporaryContext
interface in order to be notified when the context gets reset.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.ITemporaryContext.Reset">
<summary>
Called by <see cref="!:TemporaryPropertyContext&lt;T&gt;"/> when the context gets reset.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.IValueGetterSetter">
<summary>
Used by all InspectorProperty to tell Odin how to set or get a value on any given property.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.IValueGetterSetter.IsReadonly">
<summary>
Whether the value is readonly.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.IValueGetterSetter.OwnerType">
<summary>
Gets the type of the owner.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.IValueGetterSetter.ValueType">
<summary>
Gets the type of the value.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.IValueGetterSetter.SetValue(System.Object,System.Object)">
<summary>
Sets the weakly typed value on a given weakly typed owner.
</summary>
<param name="owner">The owner.</param>
<param name="value">The value.</param>
</member>
<member name="M:Sirenix.OdinInspector.Editor.IValueGetterSetter.GetValue(System.Object)">
<summary>
Gets the value from a given weakly typed owner.
</summary>
<param name="owner">The weakly typed owner.</param>
<returns>The found value.</returns>
</member>
<member name="T:Sirenix.OdinInspector.Editor.IValueGetterSetter`2">
<summary>
Used by all <see cref="T:Sirenix.OdinInspector.Editor.AliasGetterSetter`4"/> to tell Odin how to set or get a value on any given property.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.IValueGetterSetter`2.SetValue(`0@,`1)">
<summary>
Sets the value on a given owner.
</summary>
<param name="owner">The owner.</param>
<param name="value">The value.</param>
</member>
<member name="M:Sirenix.OdinInspector.Editor.IValueGetterSetter`2.GetValue(`0@)">
<summary>
Gets the value from a given owner.
</summary>
<param name="owner">The owner.</param>
</member>
<member name="F:Sirenix.OdinInspector.Editor.MenuTreeBrowser.ContentPadding">
<summary>
The content padding
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.MenuTreeBrowser.DrawMenuTree">
<summary>
Draws the menu tree.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.MenuTreeBrowser.Value">
<summary>
Gets the value selected value.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.MenuTreeBrowser.ForceRebuildMenuTree">
<summary>
Invokes BuildMenuTree.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.OdinDontRegisterAttribute">
<summary>
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.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.OdinDrawerAttribute">
<summary>
<para>When creating custom property drawers with <see cref="T:Sirenix.OdinInspector.Editor.OdinValueDrawer`1"/> or <see cref="T:Sirenix.OdinInspector.Editor.OdinAttributeDrawer`2"/> etc,
an OdinDrawerAttribute must be defined on the custom drawer class itself in order to specify that the drawer is meant to be included in the inspector.</para>
<para>If no OdinDrawerAttribute is defined, the <see cref="!:DrawerLocator"/> will ignore your drawer.</para>
</summary>
<remarks>
Checkout the manual for more information.
</remarks>
<example>
<code>
// Specify that this drawer must be included in the inspector; without this, it will not be drawn
public class MyCustomTypeDrawer&lt;T&gt; : OdinValueDrawer&lt;T&gt; where T : MyCustomBaseType
{
protected override void DrawPropertyLayout(IPropertyValueEntry&lt;T&gt; entry, GUIContent label)
{
T value = entry.SmartValue;
// Draw property here.
// Optionally, call the next drawer in line.
this.CallNextDrawer(entry, label);
}
}
</code>
</example>
<seealso cref="!:OdinDrawerBehaviour"/>
<seealso cref="T:Sirenix.OdinInspector.Editor.OdinAttributeDrawer`2"/>
<seealso cref="T:Sirenix.OdinInspector.Editor.OdinValueDrawer`1"/>
<seealso cref="T:Sirenix.OdinInspector.Editor.OdinGroupDrawer`1"/>
<seealso cref="T:Sirenix.OdinInspector.Editor.OdinDrawer"/>
<seealso cref="T:Sirenix.OdinInspector.Editor.DrawerPriorityAttribute"/>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinDrawerAttribute.#ctor">
<summary>
Initializes a new instance of the <see cref="T:Sirenix.OdinInspector.Editor.OdinDrawerAttribute"/> class.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.ResolverPriorityAttribute">
<summary>
Priority for <see cref="T:Sirenix.OdinInspector.Editor.OdinPropertyResolver"/> and <see cref="T:Sirenix.OdinInspector.Editor.OdinAttributeProcessor"/> types.
</summary>
</member>
<member name="F:Sirenix.OdinInspector.Editor.ResolverPriorityAttribute.Priority">
<summary>
Priority of the resolver.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.ResolverPriorityAttribute.#ctor(System.Double)">
<summary>
Initializes a new instance of the <see cref="T:Sirenix.OdinInspector.Editor.ResolverPriorityAttribute"/> class.
</summary>
<param name="priority">The higher the priority, the earlier it will be processed.</param>
</member>
<member name="T:Sirenix.OdinInspector.Editor.SerializedPropertyUtilities">
<summary>
Not yet documented.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.SerializedPropertyUtilities.GetProperTypeName(UnityEditor.SerializedProperty)">
<summary>
Not yet documented.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.SerializedPropertyUtilities.IsCompatibleWithType(UnityEditor.SerializedProperty,System.Type)">
<summary>
Not yet documented.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.SerializedPropertyUtilities.GuessContainedType(UnityEditor.SerializedProperty)">
<summary>
Not yet documented.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.SerializedPropertyUtilities.CanSetGetValue(System.Type)">
<summary>
Not yet documented.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.SerializedPropertyUtilities.GetValueGetter``1">
<summary>
Not yet documented.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.SerializedPropertyUtilities.GetValueSetter``1">
<summary>
Not yet documented.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.SirenixPreferencesWindow">
<summary>
Sirenix preferences window.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.SirenixPreferencesWindow.OpenSirenixPreferences">
<summary>
Opens the Odin inspector preferences window.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.SirenixPreferencesWindow.OpenWindow(System.Object)">
<summary>
Opens the Odin inspector preferences window.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.StringMemberHelper">
<summary>
This class has been made fully obsolete, and has been replaced by <see cref="T:Sirenix.OdinInspector.Editor.ValueResolvers.ValueResolver" />.
It was a helper class to handle strings for labels and other similar purposes.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.StringMemberHelper.ErrorMessage">
<summary>
If any error occurred while looking for members, it will be stored here.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.StringMemberHelper.#ctor(System.Type,System.String,System.Boolean,System.Boolean)">
<summary>
Obsolete. Use other constructor.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.StringMemberHelper.#ctor(System.Type,System.String,System.String@,System.Boolean,System.Boolean)">
<summary>
Obsolete. Use other constructor.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.StringMemberHelper.#ctor(Sirenix.OdinInspector.Editor.InspectorProperty,System.String)">
<summary>
Creates a StringMemberHelper to get a display string.
</summary>
<param name="property">Inspector property to get string from.</param>
<param name="text">The input string. If the first character is a '$', then StringMemberHelper will look for a member string field, property or method, and will try to parse it as an expression if it starts with '@'.</param>
</member>
<member name="M:Sirenix.OdinInspector.Editor.StringMemberHelper.#ctor(Sirenix.OdinInspector.Editor.InspectorProperty,System.String,System.String@)">
<summary>
Creates a StringMemberHelper to get a display string.
</summary>
<param name="property">Inspector property to get string from.</param>
<param name="text">The input string. If the first character is a '$', then StringMemberHelper will look for a member string field, property or method, and will try to parse it as an expression if it starts with '@'.</param>/// <param name="text">The input string. If the first character is a '$', then StringMemberHelper will look for a member string field, property or method.</param>
</member>
<member name="P:Sirenix.OdinInspector.Editor.StringMemberHelper.IsDynamicString">
<summary>
Gets a value indicating whether or not the string is retrived from a from a member.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.StringMemberHelper.ObjectType">
<summary>
Gets the type of the object.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.StringMemberHelper.GetString(Sirenix.OdinInspector.Editor.IPropertyValueEntry)">
<summary>
Gets the string from the StringMemberHelper.
Only updates the string buffer in Layout events.
</summary>
<param name="entry">The property entry, to get the instance reference from.</param>
<returns>The current display string.</returns>
</member>
<member name="M:Sirenix.OdinInspector.Editor.StringMemberHelper.GetString(Sirenix.OdinInspector.Editor.InspectorProperty)">
<summary>
Gets the string from the StringMemberHelper.
Only updates the string buffer in Layout events.
</summary>
<param name="property">The property, to get the instance reference from.</param>
<returns>The current string.</returns>
</member>
<member name="M:Sirenix.OdinInspector.Editor.StringMemberHelper.GetString(System.Object)">
<summary>
Gets the string from the StringMemberHelper.
Only updates the string buffer in Layout events.
</summary>
<param name="instance">The instance, for evt. member references.</param>
<returns>The current string.</returns>
</member>
<member name="M:Sirenix.OdinInspector.Editor.StringMemberHelper.ForceGetString(Sirenix.OdinInspector.Editor.IPropertyValueEntry)">
<summary>
Gets the string from the StringMemberHelper.
</summary>
<param name="entry">The property entry, to get the instance reference from.</param>
<returns>The current string.</returns>
</member>
<member name="M:Sirenix.OdinInspector.Editor.StringMemberHelper.ForceGetString(Sirenix.OdinInspector.Editor.InspectorProperty)">
<summary>
Gets the string from the StringMemberHelper.
</summary>
<param name="property">The property, to get the instance reference from.</param>
<returns>The current string.</returns>
</member>
<member name="M:Sirenix.OdinInspector.Editor.StringMemberHelper.ForceGetString(System.Object)">
<summary>
Gets the string from the StringMemberHelper.
</summary>
<param name="instance">The instance, for evt. member references.</param>
<returns>The current string.</returns>
</member>
<member name="F:Sirenix.OdinInspector.Editor.TypeSearch.TypeSearchIndex.LOCK">
<summary>
To safely change anything in the type cache, you must be holding this lock.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.UniqueDrawerKey">
<summary>
Gets a unique key for any given property within a drawer.
</summary>
<example>
<code>
public class MyCustomTypeDrawer&lt;T&gt; : OdinValueDrawer&lt;T&gt; where T : MyCustomBaseType
{
protected override void DrawPropertyLayout(IPropertyValueEntry&lt;T&gt; entry, GUIContent label)
{
var isToggled = entry.Context(this, "toggled", false);
isToggled.Value = SirenixEditorGUI.Label(isToggled.Value, label);
if (SirenixEditorGUI.BeginFadeGroup(UniqueDrawerKey.Create(entry, this), isToggled.Value))
{
EditorGUI.indentLevel++;
this.CallNextDrawer(entry.Property, null);
EditorGUI.indentLevel--;
}
SirenixEditorGUI.EndFadeGroup();
}
}
</code>
</example>
</member>
<member name="M:Sirenix.OdinInspector.Editor.UniqueDrawerKey.Create(Sirenix.OdinInspector.Editor.IPropertyValueEntry,Sirenix.OdinInspector.Editor.OdinDrawer)">
<summary>
Gets a unique key for any given property within a drawer.
</summary>
<param name="entry">The property entry.</param>
<param name="drawer">The drawer.</param>
<returns></returns>
</member>
<member name="M:Sirenix.OdinInspector.Editor.UniqueDrawerKey.Create(Sirenix.OdinInspector.Editor.InspectorProperty,Sirenix.OdinInspector.Editor.OdinDrawer)">
<summary>
Gets a unique key for any given property within a drawer.
</summary>
<param name="property">The property.</param>
<param name="drawer">The drawer.</param>
<returns></returns>
</member>
<member name="M:Sirenix.OdinInspector.Editor.UniqueDrawerKey.Equals(Sirenix.OdinInspector.Editor.UniqueDrawerKey)">
<summary>
Checks if two keys are identical.
</summary>
<param name="other">The other key.</param>
</member>
<member name="M:Sirenix.OdinInspector.Editor.UniqueDrawerKey.Equals(System.Object)">
<summary>
Checks if two keys are identical.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.UniqueDrawerKey.GetHashCode">
<summary>
Returns a hash code for this instance.
</summary>
<returns>
A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table.
</returns>
</member>
<member name="T:Sirenix.OdinInspector.Editor.UnityPropertyEmitter">
<summary>
Provides utilities for emitting ScriptableObject and MonoBehaviour-derived types with specific property names and types, and providing instances of <see cref="T:UnityEditor.SerializedProperty"/> with those names and types.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.UnityPropertyEmitter.Handle">
<summary>
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.
</summary>
</member>
<member name="F:Sirenix.OdinInspector.Editor.UnityPropertyEmitter.Handle.UnityProperty">
<summary>
The unity property to represent.
</summary>
</member>
<member name="F:Sirenix.OdinInspector.Editor.UnityPropertyEmitter.Handle.Objects">
<summary>
The Unity objects to represent.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.UnityPropertyEmitter.Handle.#ctor(UnityEditor.SerializedProperty,UnityEngine.Object[])">
<summary>
Initializes a new instance of the <see cref="T:Sirenix.OdinInspector.Editor.UnityPropertyEmitter.Handle"/> class.
</summary>
<param name="unityProperty">The unity property to represent.</param>
<param name="objects">The objects to represent.</param>
</member>
<member name="M:Sirenix.OdinInspector.Editor.UnityPropertyEmitter.Handle.Finalize">
<summary>
Finalizes an instance of the <see cref="T:Sirenix.OdinInspector.Editor.UnityPropertyEmitter.Handle"/> class.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.UnityPropertyEmitter.CreateEmittedMonoBehaviourProperty(System.String,System.Type,System.Int32,UnityEngine.GameObject@)">
<summary>
Creates an emitted MonoBehaviour-based <see cref="T:UnityEditor.SerializedProperty"/>.
</summary>
<param name="fieldName">Name of the field to emit.</param>
<param name="valueType">Type of the value to create a property for.</param>
<param name="targetCount">The target count of the tree to create a property for.</param>
<param name="gameObject">The game object that the MonoBehaviour of the property is located on.</param>
<exception cref="T:System.ArgumentNullException">
fieldName is null
or
valueType is null
</exception>
<exception cref="T:System.ArgumentException">Target count must be equal to or higher than 1.</exception>
</member>
<member name="M:Sirenix.OdinInspector.Editor.UnityPropertyEmitter.CreateEmittedScriptableObjectProperty(System.String,System.Type,System.Int32)">
<summary>
Creates an emitted ScriptableObject-based <see cref="T:UnityEditor.SerializedProperty"/>.
</summary>
<param name="fieldName">Name of the field to emit.</param>
<param name="valueType">Type of the value to create a property for.</param>
<param name="targetCount">The target count of the tree to create a property for.</param>
<exception cref="T:System.ArgumentNullException">
fieldName is null
or
valueType is null
</exception>
<exception cref="T:System.ArgumentException">Target count must be equal to or higher than 1.</exception>
</member>
<member name="T:Sirenix.OdinInspector.Editor.OdinEditorWindow">
<summary>
Base class for creating editor windows using Odin.
</summary>
<example>
<code>
public class SomeWindow : OdinEditorWindow
{
[MenuItem("My Game/Some Window")]
private static void OpenWindow()
{
GetWindow&lt;SomeWindow&gt;().Show();
}
[Button(ButtonSizes.Large)]
public void SomeButton() { }
[TableList]
public SomeType[] SomeTableData;
}
</code>
</example>
<example>
<code>
public class DrawSomeSingletonInAnEditorWindow : OdinEditorWindow
{
[MenuItem("My Game/Some Window")]
private static void OpenWindow()
{
GetWindow&lt;DrawSomeSingletonInAnEditorWindow&gt;().Show();
}
protected override object GetTarget()
{
return MySingleton.Instance;
}
}
</code>
</example>
<example>
<code>
private void InspectObjectInWindow()
{
OdinEditorWindow.InspectObject(someObject);
}
private void InspectObjectInDropDownWithAutoHeight()
{
var btnRect = GUIHelper.GetCurrentLayoutRect();
OdinEditorWindow.InspectObjectInDropDown(someObject, btnRect, btnRect.width);
}
private void InspectObjectInDropDown()
{
var btnRect = GUIHelper.GetCurrentLayoutRect();
OdinEditorWindow.InspectObjectInDropDown(someObject, btnRect, new Vector2(btnRect.width, 100));
}
private void InspectObjectInACenteredWindow()
{
var window = OdinEditorWindow.InspectObject(someObject);
window.position = GUIHelper.GetEditorWindowRect().AlignCenter(270, 200);
}
private void OtherStuffYouCanDo()
{
var window = OdinEditorWindow.InspectObject(this.someObject);
window.position = GUIHelper.GetEditorWindowRect().AlignCenter(270, 200);
window.titleContent = new GUIContent("Custom title", EditorIcons.RulerRect.Active);
window.OnClose += () => Debug.Log("Window Closed");
window.OnBeginGUI += () => GUILayout.Label("-----------");
window.OnEndGUI += () => GUILayout.Label("-----------");
}
</code>
</example>
<seealso cref="T:Sirenix.OdinInspector.Editor.OdinMenuEditorWindow"/>
</member>
<member name="E:Sirenix.OdinInspector.Editor.OdinEditorWindow.OnClose">
<summary>
Occurs when the window is closed.
</summary>
</member>
<member name="E:Sirenix.OdinInspector.Editor.OdinEditorWindow.OnBeginGUI">
<summary>
Occurs at the beginning the OnGUI method.
</summary>
</member>
<member name="E:Sirenix.OdinInspector.Editor.OdinEditorWindow.OnEndGUI">
<summary>
Occurs at the end the OnGUI method.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.OdinEditorWindow.DefaultLabelWidth">
<summary>
Gets the label width to be used. Values between 0 and 1 are treated as percentages, and values above as pixels.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.OdinEditorWindow.WindowPadding">
<summary>
Gets or sets the window padding. x = left, y = right, z = top, w = bottom.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.OdinEditorWindow.UseScrollView">
<summary>
Gets a value indicating whether the window should draw a scroll view.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.OdinEditorWindow.DrawUnityEditorPreview">
<summary>
Gets a value indicating whether the window should draw a Unity editor preview, if possible.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.OdinEditorWindow.DefaultEditorPreviewHeight">
<summary>
Gets the default preview height for Unity editors.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinEditorWindow.GetTarget">
<summary>
Gets the target which which the window is supposed to draw. By default it simply returns the editor window instance itself. By default, this method is called by <see cref="M:Sirenix.OdinInspector.Editor.OdinEditorWindow.GetTargets"/>().
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinEditorWindow.GetTargets">
<summary>
Gets the targets to be drawn by the editor window. By default this simply yield returns the <see cref="M:Sirenix.OdinInspector.Editor.OdinEditorWindow.GetTarget"/> method.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.OdinEditorWindow.CurrentDrawingTargets">
<summary>
At the start of each OnGUI event when in the Layout event, the GetTargets() method is called and cached into a list which you can access from here.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinEditorWindow.InspectObjectInDropDown(System.Object,UnityEngine.Rect,System.Single)">
<summary>
<para>
Pops up an editor window for the given object in a drop-down window which closes when it loses its focus.
This particular overload uses a few frames to calculate the height of the content before showing the window with a height that matches its content.
</para>
<para>Protip: You can subscribe to OnClose if you want to know when that occurs.</para>
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinEditorWindow.EnableAutomaticHeightAdjustment(System.Int32,System.Boolean)">
<summary>
Measures the GUILayout content height and adjusts the window height accordingly.
Note that this feature becomes pointless if any layout group expands vertically.
</summary>
<param name="maxHeight">The max height of the window.</param>
<param name="retainInitialWindowPosition">When the window height expands below the screen bounds, it will move the window
upwards when needed, enabling this will move it back down when the window height is decreased. </param>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinEditorWindow.InspectObjectInDropDown(System.Object,UnityEngine.Rect,UnityEngine.Vector2)">
<summary>
<para>
Pops up an editor window for the given object in a drop-down window which closes when it loses its focus.
</para>
<para>Protip: You can subscribe to OnClose if you want to know when that occurs.</para>
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinEditorWindow.InspectObjectInDropDown(System.Object,UnityEngine.Vector2)">
<summary>
<para>
Pops up an editor window for the given object in a drop-down window which closes when it loses its focus.
</para>
<para>Protip: You can subscribe to OnClose if you want to know when that occurs.</para>
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinEditorWindow.InspectObjectInDropDown(System.Object,System.Single)">
<summary>
<para>
Pops up an editor window for the given object in a drop-down window which closes when it loses its focus.
</para>
<para>Protip: You can subscribe to OnClose if you want to know when that occurs.</para>
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinEditorWindow.InspectObjectInDropDown(System.Object,UnityEngine.Vector2,System.Single)">
<summary>
<para>
Pops up an editor window for the given object in a drop-down window which closes when it loses its focus.
</para>
<para>Protip: You can subscribe to OnClose if you want to know when that occurs.</para>
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinEditorWindow.InspectObjectInDropDown(System.Object,System.Single,System.Single)">
<summary>
<para>
Pops up an editor window for the given object in a drop-down window which closes when it loses its focus.
</para>
<para>Protip: You can subscribe to OnClose if you want to know when that occurs.</para>
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinEditorWindow.InspectObjectInDropDown(System.Object)">
<summary>
<para>
Pops up an editor window for the given object in a drop-down window which closes when it loses its focus.
</para>
<para>Protip: You can subscribe to OnClose if you want to know when that occurs.</para>
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinEditorWindow.InspectObject(System.Object)">
<summary>
Pops up an editor window for the given object.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinEditorWindow.InspectObject(Sirenix.OdinInspector.Editor.OdinEditorWindow,System.Object)">
<summary>
Inspects the object using an existing OdinEditorWindow.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinEditorWindow.CreateOdinEditorWindowInstanceForObject(System.Object)">
<summary>
Creates an editor window instance for the specified object, without opening the window.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinEditorWindow.CreateOdinEditorWindowInstanceForObject(System.Object,System.Boolean)">
<summary>
Creates an editor window instance for the specified object, without opening the window.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.OdinEditorWindow.PropertyTree">
<summary>
The Odin property tree drawn.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinEditorWindow.OnGUI">
<summary>
Draws the Odin Editor Window.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinEditorWindow.DrawEditors">
<summary>
Calls DrawEditor(index) for each of the currently drawing targets.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinEditorWindow.Initialize">
<summary>
Initialize get called by OnEnable and by OnGUI after assembly reloads
which often happens when you recompile or enter and exit play mode.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinEditorWindow.OnEnable">
<summary>
Called when the window is enabled. Remember to call base.OnEnable();
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinEditorWindow.DrawEditor(System.Int32)">
<summary>
Draws the editor for the this.CurrentDrawingTargets[index].
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinEditorWindow.DrawEditorPreview(System.Int32,System.Single)">
<summary>
Uses the <see cref="M:UnityEditor.Editor.DrawPreview(UnityEngine.Rect)"/> method to draw a preview for the this.CurrentDrawingTargets[index].
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinEditorWindow.OnDestroy">
<summary>
Called when the window is destroyed. Remember to call base.OnDestroy();
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinEditorWindow.OnEndDrawEditors">
<summary>
Called before starting to draw all editors for the <see cref="P:Sirenix.OdinInspector.Editor.OdinEditorWindow.CurrentDrawingTargets"/>.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinEditorWindow.OnBeginDrawEditors">
<summary>
Called after all editors for the <see cref="P:Sirenix.OdinInspector.Editor.OdinEditorWindow.CurrentDrawingTargets"/> has been drawn.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinEditorWindow.OnAfterDeserialize">
<summary>
See ISerializationCallbackReceiver.OnBeforeSerialize for documentation on how to use this method.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinEditorWindow.OnBeforeSerialize">
<summary>
Implement this method to receive a callback after unity serialized your object.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.OdinMenuEditorWindow">
<summary>
Draws an editor window with a menu tree.
</summary>
<example>
<code>
public class OdinMenuEditorWindowExample : OdinMenuEditorWindow
{
[SerializeField, HideLabel]
private SomeData someData = new SomeData();
protected override OdinMenuTree BuildMenuTree()
{
OdinMenuTree tree = new OdinMenuTree(supportsMultiSelect: true)
{
{ "Home", this, EditorIcons.House }, // draws the someDataField in this case.
{ "Odin Settings", null, SdfIconType.GearFill },
{ "Odin Settings/Color Palettes", ColorPaletteManager.Instance, EditorIcons.EyeDropper },
{ "Odin Settings/AOT Generation", AOTGenerationConfig.Instance, EditorIcons.SmartPhone },
{ "Camera current", Camera.current },
{ "Some Class", this.someData }
};
tree.AddAllAssetsAtPath("More Odin Settings", SirenixAssetPaths.OdinEditorConfigsPath, typeof(ScriptableObject), true)
.AddThumbnailIcons();
tree.AddAssetAtPath("Odin Getting Started", SirenixAssetPaths.SirenixPluginPath + "Getting Started With Odin.asset");
var customMenuItem = new OdinMenuItem(tree, "Menu Style", tree.DefaultMenuStyle);
tree.MenuItems.Insert(2, customMenuItem);
tree.Add("Menu/Items/Are/Created/As/Needed", new GUIContent());
tree.Add("Menu/Items/Are/Created", new GUIContent("And can be overridden"));
// As you can see, Odin provides a few ways to quickly add editors / objects to your menu tree.
// The API also gives you full control over the selection, etc..
// Make sure to check out the API Documentation for OdinMenuEditorWindow, OdinMenuTree and OdinMenuItem for more information on what you can do!
return tree;
}
}
</code>
</example>
<seealso cref="T:Sirenix.OdinInspector.Editor.OdinEditorWindow" />
<seealso cref="T:Sirenix.OdinInspector.Editor.OdinMenuTree" />
<seealso cref="T:Sirenix.OdinInspector.Editor.OdinMenuItem" />
<seealso cref="T:Sirenix.OdinInspector.Editor.OdinMenuStyle" />
<seealso cref="T:Sirenix.OdinInspector.Editor.OdinMenuTreeSelection" />
<seealso cref="T:Sirenix.OdinInspector.Editor.OdinMenuTreeExtensions" />
<seealso cref="T:Sirenix.OdinInspector.Editor.OdinMenuEditorWindow" />
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinMenuEditorWindow.OnDestroy">
<summary>
Called when the window is destroyed. Remember to call base.OnDestroy();
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinMenuEditorWindow.BuildMenuTree">
<summary>
Builds the menu tree.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.OdinMenuEditorWindow.MenuWidth">
<summary>
Gets or sets the width of the menu.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.OdinMenuEditorWindow.ResizableMenuWidth">
<summary>
Gets a value indicating whether the menu is resizable.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.OdinMenuEditorWindow.MenuTree">
<summary>
Gets the menu tree.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.OdinMenuEditorWindow.DrawMenuSearchBar">
<summary>
Gets or sets a value indicating whether to draw the menu search bar.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.OdinMenuEditorWindow.CustomSearchFunction">
<summary>
Gets or sets the custom search function.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinMenuEditorWindow.ForceMenuTreeRebuild">
<summary>
Forces the menu tree rebuild.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinMenuEditorWindow.TrySelectMenuItemWithObject(System.Object)">
<summary>
Tries to select the menu item with the specified object.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinMenuEditorWindow.GetTargets">
<summary>
Draws the menu tree selection.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinMenuEditorWindow.OnImGUI">
<summary>
Draws the Odin Editor Window.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinMenuEditorWindow.DrawMenu">
<summary>
The method that draws the menu.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.OdinMenuItem">
<summary>
A menu item that represents one or more objects.
</summary>
<seealso cref="T:Sirenix.OdinInspector.Editor.OdinMenuTree" />
<seealso cref="T:Sirenix.OdinInspector.Editor.OdinMenuStyle" />
<seealso cref="T:Sirenix.OdinInspector.Editor.OdinMenuTreeSelection" />
<seealso cref="T:Sirenix.OdinInspector.Editor.OdinMenuTreeExtensions" />
<seealso cref="T:Sirenix.OdinInspector.Editor.OdinMenuEditorWindow" />
</member>
<member name="F:Sirenix.OdinInspector.Editor.OdinMenuItem.DefaultToggledState">
<summary>
The default toggled state
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinMenuItem.#ctor(Sirenix.OdinInspector.Editor.OdinMenuTree,System.String,System.Object)">
<summary>
Initializes a new instance of the <see cref="T:Sirenix.OdinInspector.Editor.OdinMenuItem"/> class.
</summary>
<param name="tree">The Odin menu tree instance the menu item belongs to.</param>
<param name="name">The name of the menu item.</param>
<param name="value">The instance the value item represents.</param>
</member>
<member name="F:Sirenix.OdinInspector.Editor.OdinMenuItem.OnDrawItem">
<summary>
Occurs right after the menu item is done drawing, and right before mouse input is handles so you can take control of that.
</summary>
</member>
<member name="F:Sirenix.OdinInspector.Editor.OdinMenuItem.OnRightClick">
<summary>
Occurs when the user has right-clicked the menu item.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.OdinMenuItem.ChildMenuItems">
<summary>
Gets the child menu items.
</summary>
<value>
The child menu items.
</value>
</member>
<member name="P:Sirenix.OdinInspector.Editor.OdinMenuItem.FlatTreeIndex">
<summary>
Gets the index location of the menu item.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.OdinMenuItem.IsVisible">
<summary>
Gets or sets a value indicating whether the menu item is visible.
Not that setting this to false will not hide its children as well. For that see use Toggled.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.OdinMenuItem.Icon">
<summary>
Gets or sets the icon that is used when the menu item is not selected.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.OdinMenuItem.IconSelected">
<summary>
Gets or sets the icon that is used when the menu item is selected.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.OdinMenuItem.IsSelected">
<summary>
Gets a value indicating whether this instance is selected.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.OdinMenuItem.MenuTree">
<summary>
Gets the menu tree instance.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.OdinMenuItem.Name">
<summary>
Gets or sets the raw menu item name.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.OdinMenuItem.SearchString">
<summary>
Gets or sets the search string used when searching for menu items.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.OdinMenuItem.NextVisualMenuItem">
<summary>
Gets the next visual menu item.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.OdinMenuItem.Parent">
<summary>
Gets the parent menu item.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.OdinMenuItem.PrevVisualMenuItem">
<summary>
Gets the previous visual menu item.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.OdinMenuItem.Rect">
<summary>
Gets the drawn rect.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.OdinMenuItem.LabelRect">
<summary>
Gets the drawn label rect.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.OdinMenuItem.Style">
<summary>
Gets or sets the style. If null is specified, then the menu trees DefaultMenuStyle is used.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinMenuItem.Deselect">
<summary>
Deselects this instance.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinMenuItem.Select(System.Boolean)">
<summary>
Selects the specified add to selection.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinMenuItem.GetChildMenuItemsRecursive(System.Boolean)">
<summary>
Gets the child menu items recursive in a DFS.
</summary>
<param name="includeSelf">Whether to include it self in the collection.</param>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinMenuItem.GetParentMenuItemsRecursive(System.Boolean,System.Boolean)">
<summary>
Gets the child menu items recursive in a DFS.
</summary>
<param name="includeSelf">Whether to include it self in the collection.</param>
<param name="includeRoot">Whether to include the root.</param>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinMenuItem.GetFullPath">
<summary>
Gets the full menu item path.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.OdinMenuItem.ObjectInstance">
<summary>
Gets the first object of the <see cref="P:Sirenix.OdinInspector.Editor.OdinMenuItem.ObjectInstances"/>
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.OdinMenuItem.ObjectInstances">
<summary>
Gets the object instances the menu item represents
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinMenuItem.SetObjectInstance(System.Object)">
<summary>
Sets the object instance
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinMenuItem.SetObjectInstances(System.Collections.IList)">
<summary>
Sets the object instances
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.OdinMenuItem.Value">
<summary>
Gets or sets the value the menu item represents.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.OdinMenuItem.SmartName">
<summary>
Gets a nice menu item name. If the raw name value is null or a dollar sign, then the name is retrieved from the object itself via ToString().
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.OdinMenuItem.Toggled">
<summary>
Gets or sets a value indicating whether this <see cref="T:Sirenix.OdinInspector.Editor.OdinMenuItem"/> is toggled / expanded. This value tries it best to be persistent.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.OdinMenuItem.IconGetter">
<summary>
Gets or sets the icon getter.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinMenuItem.DrawMenuItems(System.Int32)">
<summary>
Draws this menu item followed by all of its child menu items
</summary>
<param name="indentLevel">The indent level.</param>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinMenuItem.DrawMenuItem(System.Int32)">
<summary>
Draws the menu item with the specified indent level.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinMenuItem.OnDrawMenuItem(UnityEngine.Rect,UnityEngine.Rect)">
<summary>
Override this to add custom GUI to the menu items.
This is called right after the menu item is done drawing, and right before mouse input is handles so you can take control of that.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinMenuItem.HandleMouseEvents(UnityEngine.Rect,UnityEngine.Rect)">
<summary>
Handles the mouse events.
</summary>
<param name="rect">The rect.</param>
<param name="triangleRect">The triangle rect.</param>
</member>
<member name="T:Sirenix.OdinInspector.Editor.OdinMenuStyle">
<summary>
<para>The style settings used by <see cref="T:Sirenix.OdinInspector.Editor.OdinMenuItem"/>.</para>
<para>
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.
</para>
</summary>
<seealso cref="T:Sirenix.OdinInspector.Editor.OdinMenuTree" />
<seealso cref="T:Sirenix.OdinInspector.Editor.OdinMenuItem" />
<seealso cref="T:Sirenix.OdinInspector.Editor.OdinMenuTreeSelection" />
<seealso cref="T:Sirenix.OdinInspector.Editor.OdinMenuTreeExtensions" />
<seealso cref="T:Sirenix.OdinInspector.Editor.OdinMenuEditorWindow" />
</member>
<member name="P:Sirenix.OdinInspector.Editor.OdinMenuStyle.DefaultLabelStyle">
<summary>
Gets or sets the default selected style.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.OdinMenuStyle.SelectedLabelStyle">
<summary>
Gets or sets the selected label style.
</summary>
</member>
<member name="F:Sirenix.OdinInspector.Editor.OdinMenuStyle.Height">
<summary>
The height of the menu item.
</summary>
</member>
<member name="F:Sirenix.OdinInspector.Editor.OdinMenuStyle.Offset">
<summary>
The global offset of the menu item content
</summary>
</member>
<member name="F:Sirenix.OdinInspector.Editor.OdinMenuStyle.LabelVerticalOffset">
<summary>
The vertical offset of the menu item label
</summary>
</member>
<member name="F:Sirenix.OdinInspector.Editor.OdinMenuStyle.IndentAmount">
<summary>
The number of pixels to indent per level indent level.
</summary>
</member>
<member name="F:Sirenix.OdinInspector.Editor.OdinMenuStyle.IconSize">
<summary>
The size of the icon.
</summary>
</member>
<member name="F:Sirenix.OdinInspector.Editor.OdinMenuStyle.IconOffset">
<summary>
The size of the icon.
</summary>
</member>
<member name="F:Sirenix.OdinInspector.Editor.OdinMenuStyle.NotSelectedIconAlpha">
<summary>
The transparency of icons when the menu item is not selected.
</summary>
</member>
<member name="F:Sirenix.OdinInspector.Editor.OdinMenuStyle.IconPadding">
<summary>
The padding between the icon and other content.
</summary>
</member>
<member name="F:Sirenix.OdinInspector.Editor.OdinMenuStyle.DrawFoldoutTriangle">
<summary>
Whether to draw the a foldout triangle for menu items with children.
</summary>
</member>
<member name="F:Sirenix.OdinInspector.Editor.OdinMenuStyle.TriangleSize">
<summary>
The size of the foldout triangle icon.
</summary>
</member>
<member name="F:Sirenix.OdinInspector.Editor.OdinMenuStyle.TrianglePadding">
<summary>
The padding between the foldout triangle icon and other content.
</summary>
</member>
<member name="F:Sirenix.OdinInspector.Editor.OdinMenuStyle.AlignTriangleLeft">
<summary>
Whether or not to align the triangle left or right of the content.
If right, then the icon is pushed all the way to the right at a fixed position ignoring the indent level.
</summary>
</member>
<member name="F:Sirenix.OdinInspector.Editor.OdinMenuStyle.Borders">
<summary>
Whether to draw borders between menu items.
</summary>
</member>
<member name="F:Sirenix.OdinInspector.Editor.OdinMenuStyle.BorderPadding">
<summary>
The horizontal border padding.
</summary>
</member>
<member name="F:Sirenix.OdinInspector.Editor.OdinMenuStyle.BorderAlpha">
<summary>
The border alpha.
</summary>
</member>
<member name="F:Sirenix.OdinInspector.Editor.OdinMenuStyle.SelectedColorDarkSkin">
<summary>
The background color for when a menu item is selected.
</summary>
</member>
<member name="F:Sirenix.OdinInspector.Editor.OdinMenuStyle.SelectedInactiveColorDarkSkin">
<summary>
The background color for when a menu item is selected.
</summary>
</member>
<member name="F:Sirenix.OdinInspector.Editor.OdinMenuStyle.SelectedColorLightSkin">
<summary>
The background color for when a menu item is selected.
</summary>
</member>
<member name="F:Sirenix.OdinInspector.Editor.OdinMenuStyle.SelectedInactiveColorLightSkin">
<summary>
The background color for when a menu item is selected.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.OdinMenuStyle.SelectedColor">
<summary>
The background color for when a menu item is selected.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.OdinMenuStyle.SelectedInactiveColor">
<summary>
The background color for when a menu item is selected.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinMenuStyle.SetHeight(System.Int32)">
<summary>
Sets the height of the menu item.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinMenuStyle.SetOffset(System.Single)">
<summary>
Sets the global offset of the menu item content
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinMenuStyle.SetIndentAmount(System.Single)">
<summary>
Sets the number of pixels to indent per level indent level.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinMenuStyle.SetIconSize(System.Single)">
<summary>
Sets the size of the icon.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinMenuStyle.SetIconOffset(System.Single)">
<summary>
Sets the size of the icon.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinMenuStyle.SetNotSelectedIconAlpha(System.Single)">
<summary>
Sets the transparency of icons when the menu item is not selected.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinMenuStyle.SetIconPadding(System.Single)">
<summary>
Sets the padding between the icon and other content.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinMenuStyle.SetDrawFoldoutTriangle(System.Boolean)">
<summary>
Sets whether to draw the a foldout triangle for menu items with children.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinMenuStyle.SetTriangleSize(System.Single)">
<summary>
Sets the size of the foldout triangle icon.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinMenuStyle.SetTrianglePadding(System.Single)">
<summary>
Sets the padding between the foldout triangle icon and other content.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinMenuStyle.SetAlignTriangleLeft(System.Boolean)">
<summary>
Sets whether or not to align the triangle left or right of the content.
If right, then the icon is pushed all the way to the right at a fixed position ignoring the indent level.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinMenuStyle.SetBorders(System.Boolean)">
<summary>
Sets whether to draw borders between menu items.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinMenuStyle.SetBorderPadding(System.Single)">
<summary>
Sets the border alpha.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinMenuStyle.SetBorderAlpha(System.Single)">
<summary>
Sets the border alpha.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinMenuStyle.SetSelectedColorDarkSkin(UnityEngine.Color)">
<summary>
Sets the background color for when a menu item is selected.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinMenuStyle.SetSelectedColorLightSkin(UnityEngine.Color)">
<summary>
Sets the background color for when a menu item is selected.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.OdinMenuStyle.TreeViewStyle">
<summary>
Creates and returns an instance of a menu style that makes it look like Unity's project window.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.OdinMenuTree">
<summary>
OdinMenuTree provides a tree of <see cref="T:Sirenix.OdinInspector.Editor.OdinMenuItem"/>s, and helps with selection, inserting menu items into the tree, and can handle keyboard navigation for you.
</summary>
<example>
<code>
OdinMenuTree tree = new OdinMenuTree(supportsMultiSelect: true)
{
{ "Home", this, EditorIcons.House },
{ "Odin Settings", null, SdfIconType.GearFill },
{ "Odin Settings/Color Palettes", ColorPaletteManager.Instance, EditorIcons.EyeDropper },
{ "Odin Settings/AOT Generation", AOTGenerationConfig.Instance, EditorIcons.SmartPhone },
{ "Camera current", Camera.current },
{ "Some Class", this.someData }
};
tree.AddAllAssetsAtPath("Some Menu Item", "Some Asset Path", typeof(ScriptableObject), true)
.AddThumbnailIcons();
tree.AddAssetAtPath("Some Second Menu Item", "SomeAssetPath/SomeAssetFile.asset");
var customMenuItem = new OdinMenuItem(tree, "Menu Style", tree.DefaultMenuStyle);
tree.MenuItems.Insert(2, customMenuItem);
tree.Add("Menu/Items/Are/Created/As/Needed", new GUIContent());
tree.Add("Menu/Items/Are/Created", new GUIContent("And can be overridden"));
</code>
OdinMenuTrees are typically used with <see cref="T:Sirenix.OdinInspector.Editor.OdinMenuEditorWindow"/>s but is made to work perfectly fine on its own for other use cases.
OdinMenuItems can be inherited and and customized to fit your needs.
<code>
// Draw stuff
someTree.DrawMenuTree();
// Draw stuff
someTree.HandleKeybaordMenuNavigation();
</code>
</example>
<seealso cref="T:Sirenix.OdinInspector.Editor.OdinMenuItem" />
<seealso cref="T:Sirenix.OdinInspector.Editor.OdinMenuStyle" />
<seealso cref="T:Sirenix.OdinInspector.Editor.OdinMenuTreeSelection" />
<seealso cref="T:Sirenix.OdinInspector.Editor.OdinMenuTreeExtensions" />
<seealso cref="T:Sirenix.OdinInspector.Editor.OdinMenuEditorWindow" />
</member>
<member name="F:Sirenix.OdinInspector.Editor.OdinMenuTree.ActiveMenuTree">
<summary>
Gets the currently active menu tree.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.OdinMenuTree.Selection">
<summary>
Gets the selection.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.OdinMenuTree.MenuItems">
<summary>
Gets the root menu items.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.OdinMenuTree.RootMenuItem">
<summary>
Gets the root menu item.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.OdinMenuTree.DrawInSearchMode">
<summary>
If true, all indent levels will be ignored, and all menu items with IsVisible == true will be drawn.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinMenuTree.Add(System.String,System.Object)">
<summary>
Adds a menu item with the specified object instance at the the specified path.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinMenuTree.Add(System.String,System.Object,UnityEngine.Texture)">
<summary>
Adds a menu item with the specified object instance and icon at the the specified path.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinMenuTree.Add(System.String,System.Object,Sirenix.OdinInspector.SdfIconType)">
<summary>
Adds a menu item with the specified object instance and icon at the the specified path.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinMenuTree.Add(System.String,System.Object,UnityEngine.Sprite)">
<summary>
Adds a menu item with the specified object instance and icon at the the specified path.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinMenuTree.Add(System.String,System.Object,Sirenix.Utilities.Editor.EditorIcon)">
<summary>
Adds a menu item with the specified object instance and icon at the the specified path.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinMenuTree.AddRange``1(System.Collections.Generic.IEnumerable{``0},System.Func{``0,System.String})">
<summary>
Adds a collection of objects to the menu tree and returns all menu items created in random order.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinMenuTree.AddRange``1(System.Collections.Generic.IEnumerable{``0},System.Func{``0,System.String},System.Func{``0,UnityEngine.Texture})">
<summary>
Adds a collection of objects to the menu tree and returns all menu items created in random order.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.OdinMenuTree.DefaultMenuStyle">
<summary>
Gets or sets the default menu item style from Config.DefaultStyle.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.OdinMenuTree.Config">
<summary>
Gets or sets the default drawing configuration.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinMenuTree.#ctor">
<summary>
Initializes a new instance of the <see cref="T:Sirenix.OdinInspector.Editor.OdinMenuTree"/> class.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinMenuTree.#ctor(System.Boolean)">
<summary>
Initializes a new instance of the <see cref="T:Sirenix.OdinInspector.Editor.OdinMenuTree"/> class.
</summary>
<param name="supportsMultiSelect">if set to <c>true</c> [supports multi select].</param>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinMenuTree.#ctor(System.Boolean,Sirenix.OdinInspector.Editor.OdinMenuStyle)">
<summary>
Initializes a new instance of the <see cref="T:Sirenix.OdinInspector.Editor.OdinMenuTree"/> class.
</summary>
<param name="supportsMultiSelect">if set to <c>true</c> [supports multi select].</param>
<param name="defaultMenuStyle">The default menu item style.</param>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinMenuTree.#ctor(System.Boolean,Sirenix.OdinInspector.Editor.OdinMenuTreeDrawingConfig)">
<summary>
Initializes a new instance of the <see cref="T:Sirenix.OdinInspector.Editor.OdinMenuTree"/> class.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinMenuTree.ScrollToMenuItem(Sirenix.OdinInspector.Editor.OdinMenuItem,System.Boolean)">
<summary>
Scrolls to the specified menu item.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinMenuTree.EnumerateTree(System.Boolean)">
<summary>
Enumerates the tree with a DFS.
</summary>
<param name="includeRootNode">if set to <c>true</c> then the invisible root menu item is included.</param>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinMenuTree.EnumerateTree(System.Func{Sirenix.OdinInspector.Editor.OdinMenuItem,System.Boolean},System.Boolean)">
<summary>
Enumerates the tree with a DFS.
</summary>
<param name="predicate">The predicate.</param>
<param name="includeRootNode">if set to <c>true</c> then the invisible root menu item is included.</param>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinMenuTree.EnumerateTree(System.Action{Sirenix.OdinInspector.Editor.OdinMenuItem})">
<summary>
Enumerates the tree with a DFS.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinMenuTree.DrawMenuTree">
<summary>
Draws the menu tree recursively.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinMenuTree.MarkDirty">
<summary>
Marks the dirty. This will cause a tree.UpdateTree() in the beginning of the next Layout frame.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinMenuTree.DrawSearchToolbar(UnityEngine.GUIStyle)">
<summary>
Draws the search toolbar.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinMenuTree.UpdateMenuTree">
<summary>
Updates the menu tree. This method is usually called automatically when needed.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinMenuTree.HandleKeybaordMenuNavigation">
<summary>
Handles the keyboard menu navigation. Call this at the end of your GUI scope, to prevent the menu tree from stealing input events from other text fields.
</summary>
<returns>Returns true, if anything was changed via the keyboard.</returns>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinMenuTree.HandleKeyboardMenuNavigation">
<summary>
Handles the keyboard menu navigation. Call this at the end of your GUI scope, to prevent the menu tree from stealing input events from other text fields.
</summary>
<returns>Returns true, if anything was changed via the keyboard.</returns>
</member>
<member name="T:Sirenix.OdinInspector.Editor.OdinMenuTreeDrawingConfig">
<summary>
The config used by OdinMenuTree to specify which features of the Menu Tree should be used when drawing.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.OdinMenuTreeDrawingConfig.DefaultMenuStyle">
<summary>
Gets or sets the default menu item style.
</summary>
</member>
<member name="F:Sirenix.OdinInspector.Editor.OdinMenuTreeDrawingConfig.AutoScrollOnSelectionChanged">
<summary>
The automatic scroll on selection changed. True by default.
</summary>
</member>
<member name="F:Sirenix.OdinInspector.Editor.OdinMenuTreeDrawingConfig.DrawScrollView">
<summary>
Whether to draw the tree in a scrollable view. True by default.
</summary>
</member>
<member name="F:Sirenix.OdinInspector.Editor.OdinMenuTreeDrawingConfig.AutoHandleKeyboardNavigation">
<summary>
Whether to handle keyboard navigation after it's done drawing. True by default.
</summary>
</member>
<member name="F:Sirenix.OdinInspector.Editor.OdinMenuTreeDrawingConfig.DrawSearchToolbar">
<summary>
Whether to draw a searchbar above the menu tree. True by default.
</summary>
</member>
<member name="F:Sirenix.OdinInspector.Editor.OdinMenuTreeDrawingConfig.UseCachedExpandedStates">
<summary>
Whether to the menu items expanded state should be cached. True by default.
</summary>
</member>
<member name="F:Sirenix.OdinInspector.Editor.OdinMenuTreeDrawingConfig.AutoFocusSearchBar">
<summary>
Whether to automatically set focus on the search bar when the tree is drawn for the first time. True by default.
</summary>
</member>
<member name="F:Sirenix.OdinInspector.Editor.OdinMenuTreeDrawingConfig.SelectMenuItemsOnMouseDown">
<summary>
Whether to select menu items on mouse down, or on click. False by default.
</summary>
</member>
<member name="F:Sirenix.OdinInspector.Editor.OdinMenuTreeDrawingConfig.ScrollPos">
<summary>
The scroll-view position.
</summary>
</member>
<member name="F:Sirenix.OdinInspector.Editor.OdinMenuTreeDrawingConfig.SearchTerm">
<summary>
The search term.
</summary>
</member>
<member name="F:Sirenix.OdinInspector.Editor.OdinMenuTreeDrawingConfig.SearchToolbarHeight">
<summary>
The height of the search toolbar.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.OdinMenuTreeDrawingConfig.SearchFunction">
<summary>
Gets or sets the search function. Null by default.
</summary>
</member>
<member name="F:Sirenix.OdinInspector.Editor.OdinMenuTreeDrawingConfig.ConfirmSlecectionOnDoubleClick">
<summary>
By default, the MenuTree.Selection is confirmed when menu items are double clicked,
Set this to false if you don't want that behaviour.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.OdinMenuTreeDrawingConfig.ConfirmSelectionOnDoubleClick">
<summary>
By default, the MenuTree.Selection is confirmed when menu items are double clicked,
Set this to false if you don't want that behaviour.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.OdinMenuTreeExtensions">
<summary>
Class with utility methods for <see cref="T:Sirenix.OdinInspector.Editor.OdinMenuTree" />s and <see cref="T:Sirenix.OdinInspector.Editor.OdinMenuItem" />s.
</summary>
<example>
<code>
OdinMenuTree tree = new OdinMenuTree();
tree.AddAllAssetsAtPath("Some Menu Item", "Some Asset Path", typeof(ScriptableObject), true)
.AddThumbnailIcons();
tree.AddAssetAtPath("Some Second Menu Item", "SomeAssetPath/SomeAssetFile.asset");
// etc...
</code>
</example>
<seealso cref="T:Sirenix.OdinInspector.Editor.OdinMenuTree" />
<seealso cref="T:Sirenix.OdinInspector.Editor.OdinMenuItem" />
<seealso cref="T:Sirenix.OdinInspector.Editor.OdinMenuStyle" />
<seealso cref="T:Sirenix.OdinInspector.Editor.OdinMenuTreeSelection" />
<seealso cref="T:Sirenix.OdinInspector.Editor.OdinMenuEditorWindow" />
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinMenuTreeExtensions.AddMenuItemAtPath(Sirenix.OdinInspector.Editor.OdinMenuTree,System.Collections.Generic.ICollection{Sirenix.OdinInspector.Editor.OdinMenuItem},System.String,Sirenix.OdinInspector.Editor.OdinMenuItem)">
<summary>
Adds the menu item at the specified menu item path and populates the result list with all menu items created in order to add the menuItem at the specified path.
</summary>
<param name="tree">The tree instance.</param>
<param name="result">The result list.</param>
<param name="path">The menu item path.</param>
<param name="menuItem">The menu item.</param>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinMenuTreeExtensions.AddMenuItemAtPath(Sirenix.OdinInspector.Editor.OdinMenuTree,System.String,Sirenix.OdinInspector.Editor.OdinMenuItem)">
<summary>
Adds the menu item at specified menu item path, and returns all menu items created in order to add the menuItem at the specified path.
</summary>
<param name="tree">The tree.</param>
<param name="path">The menu item path.</param>
<param name="menuItem">The menu item.</param>
<returns>Returns all menu items created in order to add the menu item at the specified menu item path.</returns>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinMenuTreeExtensions.GetMenuItem(Sirenix.OdinInspector.Editor.OdinMenuTree,System.String)">
<summary>
Gets the menu item at the specified path, returns null non was found.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinMenuTreeExtensions.AddAllAssetsAtPathCombined(Sirenix.OdinInspector.Editor.OdinMenuTree,System.String,System.String,System.Type,System.Boolean)">
<summary>
Adds all asset instances from the specified path and type into a single <see cref="T:Sirenix.OdinInspector.Editor.OdinMenuItem"/> at the specified menu item path, and returns all menu items created in order to add the menuItem at the specified path..
</summary>
<param name="tree">The tree.</param>
<param name="menuPath">The menu item path.</param>
<param name="assetFolderPath">The asset folder path.</param>
<param name="type">The type of objects.</param>
<param name="includeSubDirectories">Whether to search for assets in subdirectories as well.</param>
<returns>Returns all menu items created in order to add the menu item at the specified menu item path.</returns>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinMenuTreeExtensions.AddAllAssetsAtPath(Sirenix.OdinInspector.Editor.OdinMenuTree,System.String,System.String,System.Type,System.Boolean,System.Boolean)">
<summary>
Adds all assets at the specified path. Each asset found gets its own menu item inside the specified menu item path.
</summary>
<param name="tree">The tree.</param>
<param name="menuPath">The menu item path.</param>
<param name="assetFolderPath">The asset folder path.</param>
<param name="type">The type.</param>
<param name="includeSubDirectories">Whether to search for assets in subdirectories as well.</param>
<param name="flattenSubDirectories">If true, sub-directories in the assetFolderPath will no longer get its own sub-menu item at the specified menu item path.</param>
<returns>Returns all menu items created in order to add the menu item at the specified menu item path.</returns>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinMenuTreeExtensions.AddAllAssetsAtPath(Sirenix.OdinInspector.Editor.OdinMenuTree,System.String,System.String,System.Boolean,System.Boolean)">
<summary>
Adds all assets at the specified path. Each asset found gets its own menu item inside the specified menu item path.
</summary>
<param name="tree">The tree.</param>
<param name="menuPath">The menu item path.</param>
<param name="assetFolderPath">The asset folder path.</param>
<param name="includeSubDirectories">Whether to search for assets in subdirectories as well.</param>
<param name="flattenSubDirectories">If true, sub-directories in the assetFolderPath will no longer get its own sub-menu item at the specified menu item path.</param>
<returns>Returns all menu items created in order to add the menu item at the specified menu item path.</returns>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinMenuTreeExtensions.AddAssetAtPath(Sirenix.OdinInspector.Editor.OdinMenuTree,System.String,System.String)">
<summary>
Adds the asset at the specified menu item path and returns all menu items created in order to end up at the specified menu path.
</summary>
<param name="tree">The tree.</param>
<param name="menuItemPath">The menu item path.</param>
<param name="assetPath">The asset path.</param>
<returns>Returns all menu items created in order to add the menu item at the specified menu item path.</returns>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinMenuTreeExtensions.AddAssetAtPath(Sirenix.OdinInspector.Editor.OdinMenuTree,System.String,System.String,System.Type)">
<summary>
Adds the asset at the specified menu item path and returns all menu items created in order to end up at the specified menu path.
</summary>
<param name="tree">The tree.</param>
<param name="menuItemPath">The menu item path.</param>
<param name="assetPath">The asset path.</param>
<param name="type">The type.</param>
<returns>Returns all menu items created in order to add the menu item at the specified menu item path.</returns>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinMenuTreeExtensions.SortMenuItemsByName(Sirenix.OdinInspector.Editor.OdinMenuTree,System.Boolean)">
<summary>
Sorts the entire tree of menu items recursively by name with respects to numbers.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinMenuTreeExtensions.SortMenuItemsByName(System.Collections.Generic.IEnumerable{Sirenix.OdinInspector.Editor.OdinMenuItem},System.Boolean,System.Boolean,System.Boolean,System.Boolean)">
<summary>
Sorts the collection of menu items recursively by name with respects to numbers. This is a stable sort, meaning that equivalently ordered items will remain in the same order as they start.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinMenuTreeExtensions.SortMenuItemsByName(System.Collections.Generic.IEnumerable{Sirenix.OdinInspector.Editor.OdinMenuItem},System.Comparison{Sirenix.OdinInspector.Editor.OdinMenuItem})">
<summary>
Sorts the collection of menu items recursively using a given custom comparison. This is a stable sort, meaning that equivalently ordered items will remain in the same order as they start.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinMenuTreeExtensions.AddObjectAtPath(Sirenix.OdinInspector.Editor.OdinMenuTree,System.String,System.Object,System.Boolean)">
<summary>
Adds the specified object at the specified menu item path and returns all menu items created in order to end up at the specified menu path.
</summary>
<param name="tree">The tree.</param>
<param name="menuPath">The menu path.</param>
<param name="instance">The object instance.</param>
<param name="forceShowOdinSerializedMembers">Set this to true if you want Odin serialzied members such as dictionaries and generics to be shown as well.</param>
<returns>Returns all menu items created in order to add the menu item at the specified menu item path.</returns>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinMenuTreeExtensions.AddIcons``1(System.Collections.Generic.IEnumerable{Sirenix.OdinInspector.Editor.OdinMenuItem},System.Func{``0,UnityEngine.Texture})">
<summary>
Assigns the specified icon to all menu items in the collection with the specified ObjectInstanceType.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinMenuTreeExtensions.AddIcons``1(System.Collections.Generic.IEnumerable{Sirenix.OdinInspector.Editor.OdinMenuItem},System.Func{``0,UnityEngine.Sprite})">
<summary>
Assigns the specified icon to all menu items in the collection with the specified ObjectInstanceType.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinMenuTreeExtensions.AddIcons(System.Collections.Generic.IEnumerable{Sirenix.OdinInspector.Editor.OdinMenuItem},System.Func{Sirenix.OdinInspector.Editor.OdinMenuItem,UnityEngine.Texture})">
<summary>
Assigns the specified icon to all menu items in the collection.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinMenuTreeExtensions.AddIcons(System.Collections.Generic.IEnumerable{Sirenix.OdinInspector.Editor.OdinMenuItem},System.Func{Sirenix.OdinInspector.Editor.OdinMenuItem,UnityEngine.Sprite})">
<summary>
Assigns the specified icon to all menu items in the collection.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinMenuTreeExtensions.AddIcon(System.Collections.Generic.IEnumerable{Sirenix.OdinInspector.Editor.OdinMenuItem},UnityEngine.Sprite)">
<summary>
Assigns the specified icon to the last menu item in the collection.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinMenuTreeExtensions.AddIcon(Sirenix.OdinInspector.Editor.OdinMenuItem,Sirenix.OdinInspector.SdfIconType)">
<summary>
Assigns the specified icon to the last menu item in the collection.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinMenuTreeExtensions.AddIcon(System.Collections.Generic.IEnumerable{Sirenix.OdinInspector.Editor.OdinMenuItem},Sirenix.Utilities.Editor.EditorIcon)">
<summary>
Assigns the specified icon to the last menu item in the collection.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinMenuTreeExtensions.AddIcon(System.Collections.Generic.IEnumerable{Sirenix.OdinInspector.Editor.OdinMenuItem},UnityEngine.Texture)">
<summary>
Assigns the specified icon to the last menu item in the collection.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinMenuTreeExtensions.AddIcon(System.Collections.Generic.IEnumerable{Sirenix.OdinInspector.Editor.OdinMenuItem},UnityEngine.Texture,UnityEngine.Texture)">
<summary>
Assigns the specified icon to the last menu item in the collection.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinMenuTreeExtensions.AddIcons(System.Collections.Generic.IEnumerable{Sirenix.OdinInspector.Editor.OdinMenuItem},Sirenix.Utilities.Editor.EditorIcon)">
<summary>
Assigns the specified icon to all menu items in the collection.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinMenuTreeExtensions.AddIcons(System.Collections.Generic.IEnumerable{Sirenix.OdinInspector.Editor.OdinMenuItem},UnityEngine.Texture)">
<summary>
Assigns the specified icon to all menu items in the collection.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinMenuTreeExtensions.AddIcons(System.Collections.Generic.IEnumerable{Sirenix.OdinInspector.Editor.OdinMenuItem},UnityEngine.Texture,UnityEngine.Texture)">
<summary>
Assigns the specified icon to all menu items in the collection.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinMenuTreeExtensions.AddThumbnailIcons(System.Collections.Generic.IEnumerable{Sirenix.OdinInspector.Editor.OdinMenuItem},System.Boolean)">
<summary>
Assigns the asset mini thumbnail as an icon to all menu items in the collection. If the menu items object is null then a Unity folder icon is assigned.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinMenuTreeExtensions.AddThumbnailIcon(Sirenix.OdinInspector.Editor.OdinMenuItem,System.Boolean)">
<summary>
Assigns the asset mini thumbnail as an icon to all menu items in the collection. If the menu items object is null then a Unity folder icon is assigned.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.SelectionChangedType">
<summary>
Constants which describe the type of change that was made to the OdinMenuTrees's Selection
</summary>
<seealso cref="T:Sirenix.OdinInspector.Editor.OdinMenuTreeSelection"/>
</member>
<member name="F:Sirenix.OdinInspector.Editor.SelectionChangedType.ItemRemoved">
<summary>
A menu item was removed.
</summary>
</member>
<member name="F:Sirenix.OdinInspector.Editor.SelectionChangedType.ItemAdded">
<summary>
A menu item was selected.
</summary>
</member>
<member name="F:Sirenix.OdinInspector.Editor.SelectionChangedType.SelectionCleared">
<summary>
The selection was cleared.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.OdinMenuTreeSelection">
<summary>
Handles the selection of a Odin Menu Tree with support for multi selection.
</summary>
<seealso cref="T:Sirenix.OdinInspector.Editor.OdinMenuTree" />
<seealso cref="T:Sirenix.OdinInspector.Editor.OdinMenuItem" />
<seealso cref="T:Sirenix.OdinInspector.Editor.OdinMenuStyle" />
<seealso cref="T:Sirenix.OdinInspector.Editor.OdinMenuTreeExtensions" />
<seealso cref="T:Sirenix.OdinInspector.Editor.OdinMenuEditorWindow" />
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinMenuTreeSelection.#ctor(System.Boolean)">
<summary>
Initializes a new instance of the <see cref="T:Sirenix.OdinInspector.Editor.OdinMenuTreeSelection"/> class.
</summary>
<param name="supportsMultiSelect">if set to <c>true</c> [supports multi select].</param>
</member>
<member name="E:Sirenix.OdinInspector.Editor.OdinMenuTreeSelection.OnSelectionChanged">
<summary>
Occurs whenever the selection has changed.
</summary>
</member>
<member name="E:Sirenix.OdinInspector.Editor.OdinMenuTreeSelection.SelectionChanged">
<summary>
Occurs whenever the selection has changed.
</summary>
</member>
<member name="E:Sirenix.OdinInspector.Editor.OdinMenuTreeSelection.SelectionConfirmed">
<summary>
Usually occurs whenever the user hits return, or double click a menu item.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.OdinMenuTreeSelection.Count">
<summary>
Gets the count.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.OdinMenuTreeSelection.SelectedValue">
<summary>
Gets the first selected value, returns null if non is selected.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.OdinMenuTreeSelection.SelectedValues">
<summary>
Gets all selected values.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.OdinMenuTreeSelection.SupportsMultiSelect">
<summary>
Gets or sets a value indicating whether multi selection is supported.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.OdinMenuTreeSelection.Item(System.Int32)">
<summary>
Gets the <see cref="T:Sirenix.OdinInspector.Editor.OdinMenuItem"/> at the specified index.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinMenuTreeSelection.Add(Sirenix.OdinInspector.Editor.OdinMenuItem)">
<summary>
Adds a menu item to the selection. If the menu item is already selected, then the item is pushed to the bottom of the selection list.
If multi selection is off, then the previous selected menu item is removed first.
Adding a item to the selection triggers <see cref="E:Sirenix.OdinInspector.Editor.OdinMenuTreeSelection.SelectionChanged"/>.
</summary>
<param name="item">The item.</param>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinMenuTreeSelection.Clear">
<summary>
Clears the selection and triggers <see cref="E:Sirenix.OdinInspector.Editor.OdinMenuTreeSelection.OnSelectionChanged"/>.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinMenuTreeSelection.Contains(Sirenix.OdinInspector.Editor.OdinMenuItem)">
<summary>
Determines whether an OdinMenuItem is selected.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinMenuTreeSelection.CopyTo(Sirenix.OdinInspector.Editor.OdinMenuItem[],System.Int32)">
<summary>
Copies all the elements of the current array to the specified array starting at the specified destination array index.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinMenuTreeSelection.GetEnumerator">
<summary>
Gets the enumerator.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinMenuTreeSelection.IndexOf(Sirenix.OdinInspector.Editor.OdinMenuItem)">
<summary>
Searches for the specified menu item and returns the index location.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinMenuTreeSelection.Remove(Sirenix.OdinInspector.Editor.OdinMenuItem)">
<summary>
Removes the specified menu item and triggers <see cref="E:Sirenix.OdinInspector.Editor.OdinMenuTreeSelection.SelectionChanged"/>.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinMenuTreeSelection.RemoveAt(System.Int32)">
<summary>
Removes the menu item at the specified index and triggers <see cref="E:Sirenix.OdinInspector.Editor.OdinMenuTreeSelection.SelectionChanged"/>.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinMenuTreeSelection.ConfirmSelection">
<summary>
Triggers OnSelectionConfirmed.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.EnumSelector`1">
<summary>
A feature-rich enum selector with support for flag enums.
</summary>
<example>
<code>
KeyCode someEnumValue;
[OnInspectorGUI]
void OnInspectorGUI()
{
// Use the selector manually. See the documentation for OdinSelector for more information.
if (GUILayout.Button("Open Enum Selector"))
{
EnumSelector&lt;KeyCode&gt; selector = new EnumSelector&lt;KeyCode&gt;();
selector.SetSelection(this.someEnumValue);
selector.SelectionConfirmed += selection =&gt; this.someEnumValue = selection.FirstOrDefault();
selector.ShowInPopup(); // Returns the Odin Editor Window instance, in case you want to mess around with that as well.
}
// Draw an enum dropdown field which uses the EnumSelector popup:
this.someEnumValue = EnumSelector&lt;KeyCode&gt;.DrawEnumField(new GUIContent("My Label"), this.someEnumValue);
}
// All Odin Selectors can be rendered anywhere with Odin. This includes the EnumSelector.
EnumSelector&lt;KeyCode&gt; inlineSelector;
[ShowInInspector]
EnumSelector&lt;KeyCode&gt; InlineSelector
{
get { return this.inlineSelector ?? (this.inlineSelector = new EnumSelector&lt;KeyCode&gt;()); }
set { }
}
</code>
</example>
<seealso cref="T:Sirenix.OdinInspector.Editor.OdinSelector`1"/>
<seealso cref="T:Sirenix.OdinInspector.Editor.TypeSelector"/>
<seealso cref="T:Sirenix.OdinInspector.Editor.GenericSelector`1"/>
<seealso cref="T:Sirenix.OdinInspector.Editor.OdinMenuTree"/>
<seealso cref="T:Sirenix.OdinInspector.Editor.OdinEditorWindow"/>
</member>
<member name="P:Sirenix.OdinInspector.Editor.EnumSelector`1.Title">
<summary>
By default, the enum type will be drawn as the title for the selector. No title will be drawn if the string is null or empty.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.EnumSelector`1.IsFlagEnum">
<summary>
Gets a value indicating whether this instance is flag enum.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.EnumSelector`1.#ctor">
<summary>
Initializes a new instance of the <see cref="T:Sirenix.OdinInspector.Editor.EnumSelector`1"/> class.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.EnumSelector`1.BuildSelectionTree(Sirenix.OdinInspector.Editor.OdinMenuTree)">
<summary>
Populates the tree with all enum values.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.EnumSelector`1.DefaultWindowWidth">
<summary>
When ShowInPopup is called, without a specified window width, this method gets called.
Here you can calculate and give a good default width for the popup.
The default implementation returns 0, which will let the popup window determine the width itself. This is usually a fixed value.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.EnumSelector`1.GetCurrentSelection">
<summary>
Gets the currently selected enum value.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.EnumSelector`1.SetSelection(`0)">
<summary>
Selects an enum.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.EnumSelector`1.DrawEnumField(UnityEngine.GUIContent,UnityEngine.GUIContent,`0,UnityEngine.GUIStyle,Sirenix.OdinInspector.SdfIconType)">
<summary>
Draws an enum selector field using the enum selector.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.EnumSelector`1.DrawEnumField(UnityEngine.GUIContent,`0,UnityEngine.GUIStyle)">
<summary>
Draws an enum selector field using the enum selector.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.EnumSelector`1.DrawEnumField(UnityEngine.Rect,UnityEngine.GUIContent,UnityEngine.GUIContent,`0,UnityEngine.GUIStyle,Sirenix.OdinInspector.SdfIconType)">
<summary>
Draws an enum selector field using the enum selector.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.EnumSelector`1.DrawEnumField(UnityEngine.Rect,UnityEngine.GUIContent,`0,UnityEngine.GUIStyle)">
<summary>
Draws an enum selector field using the enum selector.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.GenericSelector`1">
<summary>
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.
</summary>
<example>
<code>
SomeType someValue;
[OnInspectorGUI]
void OnInspectorGUI()
{
if (GUILayout.Button("Open Generic Selector Popup"))
{
List&lt;SomeType&gt; source = ...;
GenericSelector&lt;SomeType&gt; selector = new GenericSelector&lt;SomeType&gt;("Title", false, x => x.Path, source);
selector.SetSelection(this.someValue);
selector.SelectionTree.Config.DrawSearchToolbar = false;
selector.SelectionTree.DefaultMenuStyle.Height = 22;
selector.SelectionConfirmed += selection =&gt; this.someValue = selection.FirstOrDefault()
var window = selector.ShowInPopup();
window.OnEndGUI += () =&gt; { EditorGUILayout.HelpBox("A quick way of injecting custom GUI to the editor window popup instance.", MessageType.Info); };
window.OnClose += selector.SelectionTree.Selection.ConfirmSelection; // Confirm selection when window clses.
}
}
</code>
</example>
<seealso cref="T:Sirenix.OdinInspector.Editor.OdinSelector`1"/>
<seealso cref="T:Sirenix.OdinInspector.Editor.EnumSelector`1"/>
<seealso cref="T:Sirenix.OdinInspector.Editor.TypeSelector"/>
<seealso cref="T:Sirenix.OdinInspector.Editor.OdinMenuTree"/>
<seealso cref="T:Sirenix.OdinInspector.Editor.OdinEditorWindow"/>
</member>
<member name="P:Sirenix.OdinInspector.Editor.GenericSelector`1.FlattenedTree">
<summary>
Gets or sets a value indicating whether [flattened tree].
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.GenericSelector`1.CheckboxToggle">
<summary>
Gets or sets a value indicating whether [checkbox toggle].
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.GenericSelector`1.#ctor(System.String,System.Collections.Generic.IEnumerable{`0},System.Boolean,System.Func{`0,System.String})">
<summary>
Initializes a new instance of the <see cref="T:Sirenix.OdinInspector.Editor.GenericSelector`1"/> class.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.GenericSelector`1.#ctor(System.String,System.Boolean,System.Func{`0,System.String},`0[])">
<summary>
Initializes a new instance of the <see cref="T:Sirenix.OdinInspector.Editor.GenericSelector`1"/> class.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.GenericSelector`1.#ctor(System.String,System.Boolean,`0[])">
<summary>
Initializes a new instance of the <see cref="T:Sirenix.OdinInspector.Editor.GenericSelector`1"/> class.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.GenericSelector`1.#ctor(System.String,`0[])">
<summary>
Initializes a new instance of the <see cref="T:Sirenix.OdinInspector.Editor.GenericSelector`1"/> class.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.GenericSelector`1.#ctor(`0[])">
<summary>
Initializes a new instance of the <see cref="T:Sirenix.OdinInspector.Editor.GenericSelector`1"/> class.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.GenericSelector`1.#ctor(System.String,System.Boolean,System.Func{`0,System.String},System.Collections.Generic.IEnumerable{`0})">
<summary>
Initializes a new instance of the <see cref="T:Sirenix.OdinInspector.Editor.GenericSelector`1"/> class.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.GenericSelector`1.#ctor(System.String,System.Boolean,System.Collections.Generic.IEnumerable{`0})">
<summary>
Initializes a new instance of the <see cref="T:Sirenix.OdinInspector.Editor.GenericSelector`1"/> class.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.GenericSelector`1.#ctor(System.String,System.Collections.Generic.IEnumerable{`0})">
<summary>
Initializes a new instance of the <see cref="T:Sirenix.OdinInspector.Editor.GenericSelector`1"/> class.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.GenericSelector`1.#ctor(System.Collections.Generic.IEnumerable{`0})">
<summary>
Initializes a new instance of the <see cref="T:Sirenix.OdinInspector.Editor.GenericSelector`1"/> class.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.GenericSelector`1.Title">
<summary>
Gets the title. No title will be drawn if the string is null or empty.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.GenericSelector`1.DrawSelectionTree">
<summary>
Draws the selection tree. This gets drawn using the OnInspectorGUI attribute.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.GenericSelector`1.BuildSelectionTree(Sirenix.OdinInspector.Editor.OdinMenuTree)">
<summary>
Builds the selection tree.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.GenericSelectorItem`1">
<summary>
Used in <see cref="T:Sirenix.OdinInspector.Editor.GenericSelector`1"/> to associate name to a value in the GenericSelector.
</summary>
<typeparam name="T"></typeparam>
</member>
<member name="F:Sirenix.OdinInspector.Editor.GenericSelectorItem`1.Value">
<summary>
The value.
</summary>
</member>
<member name="F:Sirenix.OdinInspector.Editor.GenericSelectorItem`1.Name">
<summary>
The name.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.GenericSelectorItem`1.#ctor(System.String,`0)">
<summary>
Initializes a new instance of the <see cref="T:Sirenix.OdinInspector.Editor.GenericSelectorItem`1"/> struct.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.GenericSelectorItem`1.GetNiceName">
<summary>
If the
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.OdinSelector`1">
<summary>
OdinSelectors is an abstract base class that combines OdinMenuTrees and OdinEditorWindows to help making feature-rich selectors and popup selectors.
</summary>
<example>
<code>
public class MySelector : OdinSelector&lt;SomeType&gt;
{
private readonly List&lt;SomeType&gt; source;
private readonly bool supportsMultiSelect;
public MySelector(List&lt;SomeType&gt; source, bool supportsMultiSelect)
{
this.source = source;
this.supportsMultiSelect = supportsMultiSelect;
}
protected override void BuildSelectionTree(OdinMenuTree tree)
{
tree.Config.DrawSearchToolbar = true;
tree.Selection.SupportsMultiSelect = this.supportsMultiSelect;
tree.Add("Defaults/None", null);
tree.Add("Defaults/A", new SomeType());
tree.Add("Defaults/B", new SomeType());
tree.AddRange(this.source, x =&gt; x.Path, x =&gt; x.SomeTexture);
}
[OnInspectorGUI]
private void DrawInfoAboutSelectedItem()
{
SomeType selected = this.GetCurrentSelection().FirstOrDefault();
if (selected != null)
{
GUILayout.Label("Name: " + selected.Name);
GUILayout.Label("Data: " + selected.Data);
}
}
}
</code>
Usage:
<code>
void OnGUI()
{
if (GUILayout.Button("Open My Selector"))
{
List&lt;SomeType&gt; source = this.GetListOfThingsToSelectFrom();
MySelector selector = new MySelector(source, false);
selector.SetSelection(this.someValue);
selector.SelectionCancelled += () =&gt; { }; // Occurs when the popup window is closed, and no slection was confirmed.
selector.SelectionChanged += col =&gt; { };
selector.SelectionConfirmed += col =&gt; this.someValue = col.FirstOrDefault();
selector.ShowInPopup(); // Returns the Odin Editor Window instance, in case you want to mess around with that as well.
}
}
// All Odin Selectors can be rendered anywhere with Odin.
[ShowInInspector]
MySelector inlineSelector;
</code>
</example>
<seealso cref="T:Sirenix.OdinInspector.Editor.EnumSelector`1"/>
<seealso cref="T:Sirenix.OdinInspector.Editor.TypeSelector"/>
<seealso cref="T:Sirenix.OdinInspector.Editor.GenericSelector`1"/>
<seealso cref="T:Sirenix.OdinInspector.Editor.OdinMenuTree"/>
<seealso cref="T:Sirenix.OdinInspector.Editor.OdinEditorWindow"/>
</member>
<member name="F:Sirenix.OdinInspector.Editor.OdinSelector`1.DrawConfirmSelectionButton">
<summary>
If true, a confirm selection button will be drawn in the title-bar.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinSelector`1.EnableSingleClickToSelect">
<summary>
Enables the single click to select.
</summary>
</member>
<member name="E:Sirenix.OdinInspector.Editor.OdinSelector`1.SelectionCancelled">
<summary>
Occurs when the window is closed, and no slection was confirmed.
</summary>
</member>
<member name="E:Sirenix.OdinInspector.Editor.OdinSelector`1.SelectionChanged">
<summary>
Occurs when the menuTrees selection is changed and IsValidSelection returns true.
</summary>
</member>
<member name="E:Sirenix.OdinInspector.Editor.OdinSelector`1.SelectionConfirmed">
<summary>
Occurs when the menuTrees selection is confirmed and IsValidSelection returns true.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.OdinSelector`1.SelectionTree">
<summary>
Gets the selection menu tree.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.OdinSelector`1.Title">
<summary>
Gets the title. No title will be drawn if the string is null or empty.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinSelector`1.GetCurrentSelection">
<summary>
Gets the current selection from the menu tree whether it's valid or not.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinSelector`1.IsValidSelection(System.Collections.Generic.IEnumerable{`0})">
<summary>
Determines whether the specified collection is a valid collection.
If false, the SlectionChanged and SelectionConfirm events will not be called.
By default, this returns true if the collection contains one or more items.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinSelector`1.SetSelection(System.Collections.Generic.IEnumerable{`0})">
<summary>
Sets the selection.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinSelector`1.SetSelection(`0)">
<summary>
Sets the selection.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinSelector`1.ShowInPopup">
<summary>
Opens up the selector instance in a popup at the specified rect position.
The width of the popup is determined by DefaultWindowWidth, and the height is automatically calculated.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinSelector`1.ShowInPopup(UnityEngine.Rect)">
<summary>
Opens up the selector instance in a popup at the specified rect position.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinSelector`1.ShowInPopup(UnityEngine.Rect,System.Single)">
<summary>
Opens up the selector instance in a popup at the specified rect position.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinSelector`1.ShowInPopup(System.Single)">
<summary>
The mouse position is used as the position for the window.
Opens up the selector instance in a popup at the specified position.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinSelector`1.ShowInPopup(UnityEngine.Vector2,System.Single)">
<summary>
Opens up the selector instance in a popup at the specified position.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinSelector`1.ShowInPopup(UnityEngine.Rect,UnityEngine.Vector2)">
<summary>
Opens up the selector instance in a popup at the specified rect position.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinSelector`1.ShowInPopup(UnityEngine.Vector2)">
<summary>
Opens up the selector instance in a popup at the specified position.
The width of the popup is determined by DefaultWindowWidth, and the height is automatically calculated.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinSelector`1.ShowInPopup(System.Single,System.Single)">
<summary>
Opens up the selector instance in a popup with the specified width and height.
The mouse position is used as the position for the window.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinSelector`1.BuildSelectionTree(Sirenix.OdinInspector.Editor.OdinMenuTree)">
<summary>
Builds the selection tree.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinSelector`1.DefaultWindowWidth">
<summary>
When ShowInPopup is called, without a specifed window width, this methods gets called.
Here you can calculate and give a good default width for the popup.
The default implementation returns 0, which will let the popup window determain the width itself. This is usually a fixed value.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinSelector`1.TriggerSelectionChanged">
<summary>
Triggers the selection changed event, but only if the current selection is valid.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinSelector`1.OnInspectorGUI">
<summary>
Draw the selecotr manually.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinSelector`1.DrawSelectionTree">
<summary>
Draws the selection tree. This gets drawn using the OnInspectorGUI attribute.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinSelector`1.DrawSelectorDropdown(UnityEngine.Rect,System.String,System.Func{UnityEngine.Rect,Sirenix.OdinInspector.Editor.OdinSelector{`0}},UnityEngine.GUIStyle)">
<summary>
Draws dropwdown field, that creates and binds the selector to the dropdown field.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinSelector`1.DrawSelectorDropdown(UnityEngine.Rect,System.String,System.Func{UnityEngine.Rect,Sirenix.OdinInspector.Editor.OdinSelector{`0}},System.Boolean,UnityEngine.GUIStyle)">
<summary>
Draws dropwdown field, that creates and binds the selector to the dropdown field.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinSelector`1.DrawSelectorDropdown(UnityEngine.Rect,UnityEngine.GUIContent,System.Func{UnityEngine.Rect,Sirenix.OdinInspector.Editor.OdinSelector{`0}},UnityEngine.GUIStyle)">
<summary>
Draws dropwdown field, that creates and binds the selector to the dropdown field.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinSelector`1.DrawSelectorDropdown(UnityEngine.Rect,UnityEngine.GUIContent,System.Func{UnityEngine.Rect,Sirenix.OdinInspector.Editor.OdinSelector{`0}},System.Boolean,UnityEngine.GUIStyle,Sirenix.OdinInspector.SdfIconType)">
<summary>
Draws dropwdown field, that creates and binds the selector to the dropdown field.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinSelector`1.DrawSelectorDropdown(UnityEngine.GUIContent,System.String,System.Func{UnityEngine.Rect,Sirenix.OdinInspector.Editor.OdinSelector{`0}},UnityEngine.GUIStyle,UnityEngine.GUILayoutOption[])">
<summary>
Draws dropwdown field, that creates and binds the selector to the dropdown field.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinSelector`1.DrawSelectorDropdown(UnityEngine.GUIContent,System.String,System.Func{UnityEngine.Rect,Sirenix.OdinInspector.Editor.OdinSelector{`0}},System.Boolean,UnityEngine.GUIStyle,UnityEngine.GUILayoutOption[])">
<summary>
Draws dropwdown field, that creates and binds the selector to the dropdown field.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinSelector`1.DrawSelectorDropdown(UnityEngine.GUIContent,UnityEngine.GUIContent,System.Func{UnityEngine.Rect,Sirenix.OdinInspector.Editor.OdinSelector{`0}},UnityEngine.GUIStyle,UnityEngine.GUILayoutOption[])">
<summary>
Draws dropwdown field, that creates and binds the selector to the dropdown field.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.OdinSelector`1.DrawSelectorDropdown(UnityEngine.GUIContent,UnityEngine.GUIContent,System.Func{UnityEngine.Rect,Sirenix.OdinInspector.Editor.OdinSelector{`0}},System.Boolean,UnityEngine.GUIStyle,UnityEngine.GUILayoutOption[])">
<summary>
Draws dropwdown field, that creates and binds the selector to the dropdown field.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.TypeSelector">
<summary>
A feature-rich type selector.
</summary>
<example>
<code>
Type[] selectedTypes;
void OnGUI()
{
// Use the selector manually. See the documentation for OdinSelector for more information.
if (GUILayout.Button("Open My Selector"))
{
TypeSelector selector = new TypeSelector(customListOfTypes);
TypeSelector selector = new TypeSelector(AssemblyTypeFlags.CustomTypes, supportsMultiSelect: true);
selector.SetSelection(this.selectedTypes);
selector.SelectionConfirmed += selection =&gt; this.selectedTypes = selection.ToArray();
selector.ShowInPopup(); // Returns the Odin Editor Window instance, in case you want to mess around with that as well.
}
}
</code>
</example>
<example>
<code>
private static Type currentSelectedType;
private static IEnumerable&lt;Type&gt; currentSource;
private static Func&lt;Rect, OdinSelector&lt;Type&gt;&gt; createTypeSelector = (rect) =>
{
TypeSelector selector = new TypeSelector(currentSource, false);
selector.SetSelection(currentSelectedType);
selector.ShowInPopup(rect);
return selector;
};
public static Type DrawTypeSelectorDropdown(GUIContent label, Type selectedType, IEnumerable&lt;Type&gt; source)
{
currentSource = source;
currentSelectedType = selectedType;
var dropdownText = selectedType == null ? "None" : selectedType.GetNiceName();
var selected = TypeSelector.DrawSelectorDropdown(label, dropdownText, createTypeSelector);
if (selected != null &amp;&amp; selected.Any())
{
selectedType = selected.FirstOrDefault();
}
return selectedType;
}
</code>
</example>
</member>
<member name="M:Sirenix.OdinInspector.Editor.TypeSelector.BuildSelectionTree(Sirenix.OdinInspector.Editor.OdinMenuTree)">
<summary>
Builds the selection tree.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.TypeSelector.DefaultWindowWidth">
<summary>
450
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.TypeSelector.SetSelection(System.Type)">
<summary>
Sets the selected types.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.GlobalPersistentContext">
<summary>
Context that persists across reloading and restarting Unity.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.GlobalPersistentContext.TimeStamp">
<summary>
Time stamp for when the persistent context value was last used.
Used for purging unused context.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.GlobalPersistentContext.#ctor">
<summary>
Instatiates a persistent context.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.GlobalPersistentContext.UpdateTimeStamp">
<summary>
Updates the time stamp to now.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.GlobalPersistentContext`1">
<summary>
Context that persists across reloading and restarting Unity.
</summary>
<typeparam name="T">The type of the context value.</typeparam>
</member>
<member name="P:Sirenix.OdinInspector.Editor.GlobalPersistentContext`1.Value">
<summary>
The value of the context.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.GlobalPersistentContext`1.Create">
<summary>
Creates a new persistent context object.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.GlobalPersistentContext`1.ToString">
<summary>
Formats a string with the time stamp, and the value.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.LocalPersistentContext`1">
<summary>
Helper class that provides a local copy of a <see cref="T:Sirenix.OdinInspector.Editor.GlobalPersistentContext`1"/>.
When the local value is changed, it also changed the global value, but the global value does not change the local value.
</summary>
<typeparam name="T">The type of the context value.</typeparam>
</member>
<member name="P:Sirenix.OdinInspector.Editor.LocalPersistentContext`1.Value">
<summary>
The value of the context.
Changing this value, also changes the global context value, but the global value does not change the local value.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.LocalPersistentContext`1.Create(Sirenix.OdinInspector.Editor.GlobalPersistentContext{`0})">
<summary>
Creates a local context object for the provided global context.
</summary>
<param name="global">The global context object.</param>
</member>
<member name="M:Sirenix.OdinInspector.Editor.LocalPersistentContext`1.UpdateLocalValue">
<summary>
Updates the local value to the current global value.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.PersistentContext">
<summary>
Provides context objects that still persist when Unity reloads or is restarted.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PersistentContext.Get``2(``0,``1)">
<summary>
Gets a GlobalPersistentContext object for the specified key.
</summary>
<typeparam name="TKey1">The type of the first key.</typeparam>
<typeparam name="TValue">The type of the value stored in the context object.</typeparam>
<param name="alphaKey">The first key.</param>
<param name="defaultValue">The default value, used for when the context object is first created.</param>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PersistentContext.Get``3(``0,``1,``2)">
<summary>
Gets a GlobalPersistentContext object for the specified keys.
</summary>
<typeparam name="TKey1">The type of the first key.</typeparam>
<typeparam name="TKey2">The type of the second key.</typeparam>
<typeparam name="TValue">The type of the value stored in the context object.</typeparam>
<param name="alphaKey">The first key.</param>
<param name="betaKey">The second key.</param>
<param name="defaultValue">The default value, used for when the context object is first created.</param>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PersistentContext.Get``4(``0,``1,``2,``3)">
<summary>
Gets a GlobalPersistentContext object for the specified keys.
</summary>
<typeparam name="TKey1">The type of the first key.</typeparam>
<typeparam name="TKey2">The type of the second key.</typeparam>
<typeparam name="TKey3">The type of the third key.</typeparam>
<typeparam name="TValue">The type of the value stored in the context object.</typeparam>
<param name="alphaKey">The first key.</param>
<param name="betaKey">The second key.</param>
<param name="gammaKey">The third key.</param>
<param name="defaultValue">The default value, used for when the context object is first created.</param>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PersistentContext.Get``5(``0,``1,``2,``3,``4)">
<summary>
Gets a GlobalPersistentContext object for the specified keys.
</summary>
<typeparam name="TKey1">The type of the first key.</typeparam>
<typeparam name="TKey2">The type of the second key.</typeparam>
<typeparam name="TKey3">The type of the third key.</typeparam>
<typeparam name="TKey4">The type of the fourth key.</typeparam>
<typeparam name="TValue">The type of the value stored in the context object.</typeparam>
<param name="alphaKey">The first key.</param>
<param name="betaKey">The second key.</param>
<param name="gammaKey">The third key.</param>
<param name="deltaKey">The fourth key.</param>
<param name="defaultValue">The default value, used for when the context object is first created.</param>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PersistentContext.Get``6(``0,``1,``2,``3,``4,``5)">
<summary>
Gets a GlobalPersistentContext object for the specified keys.
</summary>
<typeparam name="TKey1">The type of the first key.</typeparam>
<typeparam name="TKey2">The type of the second key.</typeparam>
<typeparam name="TKey3">The type of the third key.</typeparam>
<typeparam name="TKey4">The type of the fourth key.</typeparam>
<typeparam name="TKey5">The type of the fifth key.</typeparam>
<typeparam name="TValue">The type of the value stored in the context object.</typeparam>
<param name="alphaKey">The first key.</param>
<param name="betaKey">The second key.</param>
<param name="gammaKey">The third key.</param>
<param name="deltaKey">The fourth key.</param>
<param name="epsilonKey">The fifth key.</param>
<param name="defaultValue">The default value, used for when the context object is first created.</param>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PersistentContext.Get``2(``0,Sirenix.OdinInspector.Editor.GlobalPersistentContext{``1}@)">
<summary>
Gets a GlobalPersistentContext object for the specified key.
Returns <c>true</c> when the context is first created. Otherwise <c>false</c>.
</summary>
<typeparam name="TKey1">The type of the first key.</typeparam>
<typeparam name="TValue">The type of the value stored in the context object.</typeparam>
<param name="alphaKey">The first key.</param>
<param name="context">The persistent context object.</param>
<returns>Returns <c>true</c> when the context is first created. Otherwise <c>false</c>.</returns>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PersistentContext.Get``3(``0,``1,Sirenix.OdinInspector.Editor.GlobalPersistentContext{``2}@)">
<summary>
Gets a GlobalPersistentContext object for the specified keys.
Returns <c>true</c> when the context is first created. Otherwise <c>false</c>.
</summary>
<typeparam name="TKey1">The type of the first key.</typeparam>
<typeparam name="TKey2">The type of the second key.</typeparam>
<typeparam name="TValue">The type of the value stored in the context object.</typeparam>
<param name="alphaKey">The first key.</param>
<param name="betaKey">The second key.</param>
<param name="context">The persistent context object.</param>
<returns>Returns <c>true</c> when the context is first created. Otherwise <c>false</c>.</returns>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PersistentContext.Get``4(``0,``1,``2,Sirenix.OdinInspector.Editor.GlobalPersistentContext{``3}@)">
<summary>
Gets a GlobalPersistentContext object for the specified keys.
Returns <c>true</c> when the context is first created. Otherwise <c>false</c>.
</summary>
<typeparam name="TKey1">The type of the first key.</typeparam>
<typeparam name="TKey2">The type of the second key.</typeparam>
<typeparam name="TKey3">The type of the third key.</typeparam>
<typeparam name="TValue">The type of the value stored in the context object.</typeparam>
<param name="alphaKey">The first key.</param>
<param name="betaKey">The second key.</param>
<param name="gammaKey">The third key.</param>
<param name="context">The persistent context object.</param>
<returns>Returns <c>true</c> when the context is first created. Otherwise <c>false</c>.</returns>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PersistentContext.Get``5(``0,``1,``2,``3,Sirenix.OdinInspector.Editor.GlobalPersistentContext{``4}@)">
<summary>
Gets a GlobalPersistentContext object for the specified keys.
Returns <c>true</c> when the context is first created. Otherwise <c>false</c>.
</summary>
<typeparam name="TKey1">The type of the first key.</typeparam>
<typeparam name="TKey2">The type of the second key.</typeparam>
<typeparam name="TKey3">The type of the third key.</typeparam>
<typeparam name="TKey4">The type of the fourth key.</typeparam>
<typeparam name="TValue">The type of the value stored in the context object.</typeparam>
<param name="alphaKey">The first key.</param>
<param name="betaKey">The second key.</param>
<param name="gammaKey">The third key.</param>
<param name="deltaKey">The fourth key.</param>
<param name="context">The persistent context object.</param>
<returns>Returns <c>true</c> when the context is first created. Otherwise <c>false</c>.</returns>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PersistentContext.Get``6(``0,``1,``2,``3,``4,Sirenix.OdinInspector.Editor.GlobalPersistentContext{``5}@)">
<summary>
Gets a GlobalPersistentContext object for the specified keys.
Returns <c>true</c> when the context is first created. Otherwise <c>false</c>.
</summary>
<typeparam name="TKey1">The type of the first key.</typeparam>
<typeparam name="TKey2">The type of the second key.</typeparam>
<typeparam name="TKey3">The type of the third key.</typeparam>
<typeparam name="TKey4">The type of the fourth key.</typeparam>
<typeparam name="TKey5">The type of the fifth key.</typeparam>
<typeparam name="TValue">The type of the value stored in the context object.</typeparam>
<param name="alphaKey">The first key.</param>
<param name="betaKey">The second key.</param>
<param name="gammaKey">The third key.</param>
<param name="deltaKey">The fourth key.</param>
<param name="epsilonKey">The fifth key.</param>
<param name="context">The persistent context object.</param>
<returns>Returns <c>true</c> when the context is first created. Otherwise <c>false</c>.</returns>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PersistentContext.GetLocal``2(``0,``1)">
<summary>
Gets a LocalPersistentContext object for the specified key.
</summary>
<typeparam name="TKey1">The type of the first key.</typeparam>
<typeparam name="TValue">The type of the value stored in the context object.</typeparam>
<param name="alphaKey">The first key.</param>
<param name="defaultValue">The default value, used for when the context object is first created.</param>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PersistentContext.GetLocal``3(``0,``1,``2)">
<summary>
Gets a LocalPersistentContext object for the specified keys.
</summary>
<typeparam name="TKey1">The type of the first key.</typeparam>
<typeparam name="TKey2">The type of the second key.</typeparam>
<typeparam name="TValue">The type of the value stored in the context object.</typeparam>
<param name="alphaKey">The first key.</param>
<param name="betaKey">The second key.</param>
<param name="defaultValue">The default value, used for when the context object is first created.</param>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PersistentContext.GetLocal``4(``0,``1,``2,``3)">
<summary>
Gets a LocalPersistentContext object for the specified keys.
</summary>
<typeparam name="TKey1">The type of the first key.</typeparam>
<typeparam name="TKey2">The type of the second key.</typeparam>
<typeparam name="TKey3">The type of the third key.</typeparam>
<typeparam name="TValue">The type of the value stored in the context object.</typeparam>
<param name="alphaKey">The first key.</param>
<param name="betaKey">The second key.</param>
<param name="gammaKey">The third key.</param>
<param name="defaultValue">The default value, used for when the context object is first created.</param>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PersistentContext.GetLocal``5(``0,``1,``2,``3,``4)">
<summary>
Gets a LocalPersistentContext object for the specified keys.
</summary>
<typeparam name="TKey1">The type of the first key.</typeparam>
<typeparam name="TKey2">The type of the second key.</typeparam>
<typeparam name="TKey3">The type of the third key.</typeparam>
<typeparam name="TKey4">The type of the fourth key.</typeparam>
<typeparam name="TValue">The type of the value stored in the context object.</typeparam>
<param name="alphaKey">The first key.</param>
<param name="betaKey">The second key.</param>
<param name="gammaKey">The third key.</param>
<param name="deltaKey">The fourth key.</param>
<param name="defaultValue">The default value, used for when the context object is first created.</param>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PersistentContext.GetLocal``6(``0,``1,``2,``3,``4,``5)">
<summary>
Gets a LocalPersistentContext object for the specified keys.
</summary>
<typeparam name="TKey1">The type of the first key.</typeparam>
<typeparam name="TKey2">The type of the second key.</typeparam>
<typeparam name="TKey3">The type of the third key.</typeparam>
<typeparam name="TKey4">The type of the fourth key.</typeparam>
<typeparam name="TKey5">The type of the fifth key.</typeparam>
<typeparam name="TValue">The type of the value stored in the context object.</typeparam>
<param name="alphaKey">The first key.</param>
<param name="betaKey">The second key.</param>
<param name="gammaKey">The third key.</param>
<param name="deltaKey">The fourth key.</param>
<param name="epsilonKey">The fifth key.</param>
<param name="defaultValue">The default value, used for when the context object is first created.</param>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PersistentContext.GetLocal``2(``0,Sirenix.OdinInspector.Editor.LocalPersistentContext{``1}@)">
<summary>
Gets a LocalPersistentContext object for the specified key.
Returns <c>true</c> when the context is first created. Otherwise <c>false</c>.
</summary>
<typeparam name="TKey1">The type of the first key.</typeparam>
<typeparam name="TValue">The type of the value stored in the context object.</typeparam>
<param name="alphaKey">The first key.</param>
<param name="context">The persistent context object.</param>
<returns>Returns <c>true</c> when the context is first created. Otherwise <c>false</c>.</returns>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PersistentContext.GetLocal``3(``0,``1,Sirenix.OdinInspector.Editor.LocalPersistentContext{``2}@)">
<summary>
Gets a LocalPersistentContext object for the specified keys.
Returns <c>true</c> when the context is first created. Otherwise <c>false</c>.
</summary>
<typeparam name="TKey1">The type of the first key.</typeparam>
<typeparam name="TKey2">The type of the second key.</typeparam>
<typeparam name="TValue">The type of the value stored in the context object.</typeparam>
<param name="alphaKey">The first key.</param>
<param name="betaKey">The second key.</param>
<param name="context">The persistent context object.</param>
<returns>Returns <c>true</c> when the context is first created. Otherwise <c>false</c>.</returns>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PersistentContext.GetLocal``4(``0,``1,``2,Sirenix.OdinInspector.Editor.LocalPersistentContext{``3}@)">
<summary>
Gets a LocalPersistentContext object for the specified keys.
Returns <c>true</c> when the context is first created. Otherwise <c>false</c>.
</summary>
<typeparam name="TKey1">The type of the first key.</typeparam>
<typeparam name="TKey2">The type of the second key.</typeparam>
<typeparam name="TKey3">The type of the third key.</typeparam>
<typeparam name="TValue">The type of the value stored in the context object.</typeparam>
<param name="alphaKey">The first key.</param>
<param name="betaKey">The second key.</param>
<param name="gammaKey">The third key.</param>
<param name="context">The persistent context object.</param>
<returns>Returns <c>true</c> when the context is first created. Otherwise <c>false</c>.</returns>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PersistentContext.GetLocal``5(``0,``1,``2,``3,Sirenix.OdinInspector.Editor.LocalPersistentContext{``4}@)">
<summary>
Gets a LocalPersistentContext object for the specified keys.
Returns <c>true</c> when the context is first created. Otherwise <c>false</c>.
</summary>
<typeparam name="TKey1">The type of the first key.</typeparam>
<typeparam name="TKey2">The type of the second key.</typeparam>
<typeparam name="TKey3">The type of the third key.</typeparam>
<typeparam name="TKey4">The type of the fourth key.</typeparam>
<typeparam name="TValue">The type of the value stored in the context object.</typeparam>
<param name="alphaKey">The first key.</param>
<param name="betaKey">The second key.</param>
<param name="gammaKey">The third key.</param>
<param name="deltaKey">The fourth key.</param>
<param name="context">The persistent context object.</param>
<returns>Returns <c>true</c> when the context is first created. Otherwise <c>false</c>.</returns>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PersistentContext.GetLocal``6(``0,``1,``2,``3,``4,Sirenix.OdinInspector.Editor.LocalPersistentContext{``5}@)">
<summary>
Gets a LocalPersistentContext object for the specified keys.
Returns <c>true</c> when the context is first created. Otherwise <c>false</c>.
</summary>
<typeparam name="TKey1">The type of the first key.</typeparam>
<typeparam name="TKey2">The type of the second key.</typeparam>
<typeparam name="TKey3">The type of the third key.</typeparam>
<typeparam name="TKey4">The type of the fourth key.</typeparam>
<typeparam name="TKey5">The type of the fifth key.</typeparam>
<typeparam name="TValue">The type of the value stored in the context object.</typeparam>
<param name="alphaKey">The first key.</param>
<param name="betaKey">The second key.</param>
<param name="gammaKey">The third key.</param>
<param name="deltaKey">The fourth key.</param>
<param name="epsilonKey">The fifth key.</param>
<param name="context">The persistent context object.</param>
<returns>Returns <c>true</c> when the context is first created. Otherwise <c>false</c>.</returns>
</member>
<member name="T:Sirenix.OdinInspector.Editor.PersistentContextCache">
<summary>
Persistent Context cache object.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.PersistentContextCache.CacheSize">
<summary>
Estimated cache size in bytes.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.PersistentContextCache.EntryCount">
<summary>
The current number of context entries in the cache.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.PersistentContextCache.EnableCaching">
<summary>
If <c>true</c> then persistent context is disabled entirely.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.PersistentContextCache.WriteToFile">
<summary>
If <c>true</c> the context will be saved to a file in the temp directory.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.PersistentContextCache.MaxCacheByteSize">
<summary>
The max size of the cache in bytes.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.PersistentContextCache.DeleteCache">
<summary>
Delete the persistent cache file.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Validation.NoValidationInInspectorAttribute">
<summary>
Put this attribute on a validator class to prevent the ValidatorDrawer from running that validator in the inspector.
Typically you would use this for a validation-related attribute that has its own, complex custom drawer that should
handle the validation and error/warning drawing while the inspector is being drawn, but still needs a validator to
run for the project validation scans.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Validation.RegisterValidatorAttribute">
<summary>
Apply this to an assembly to register validators for the validation system.
This enables locating of all relevant validator types very quickly.
</summary>
<seealso cref="!:RegisterValidationRuleAttribute"/>
</member>
<member name="T:Sirenix.OdinInspector.Editor.Validation.ValidationSetup">
<summary>
Use <see cref="M:Sirenix.OdinInspector.Editor.Validation.Validator.InitializeResult(Sirenix.OdinInspector.Editor.Validation.ValidationResult@)"/> to initialize an empty <see cref="T:Sirenix.OdinInspector.Editor.Validation.ValidationResult"/>.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.ValueResolvers.RegisterDefaultValueResolverCreatorAttribute">
<summary>
This attribute can be placed on an assembly to register a value resolver creator that should be queried when a value resolver is being created.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.ValueResolvers.RegisterDefaultValueResolverCreatorAttribute.#ctor(System.Type,System.Double)">
<summary>
This attribute can be placed on an assembly to register a value resolver creator that should be queried when a value resolver is being created.
</summary>
<param name="resolverCreatorType">The resolver </param>
<param name="order"></param>
</member>
<member name="T:Sirenix.OdinInspector.Editor.ValueResolvers.ValueResolver">
<summary>
<para>A ValueResolver resolves a string to a value of a given type, given an InspectorProperty instance to use as context. Call <see cref="M:Sirenix.OdinInspector.Editor.ValueResolvers.ValueResolver.Get``1(Sirenix.OdinInspector.Editor.InspectorProperty,System.String)"/> to get an instance of a ValueResolver.</para>
<para>Value resolvers are a globally extendable system that can be hooked into and modified or changed by creating and registering a <see cref="T:Sirenix.OdinInspector.Editor.ValueResolvers.ValueResolverCreator"/>.</para>
<para>See Odin's tutorials for details and examples of how to use ValueResolvers.</para>
</summary>
</member>
<member name="F:Sirenix.OdinInspector.Editor.ValueResolvers.ValueResolver.Context">
<summary>
The context of this ValueResolver, containing all of its configurations and values it needs to function. For performance and simplicity reasons, this is a single very large struct that is passed around by ref to anything that needs it.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.ValueResolvers.ValueResolver.ErrorMessage">
<summary>
The current error message that the resolver has, or null if there is no error message. This is a shortcut for writing "resolver.Context.ErrorMessage".
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.ValueResolvers.ValueResolver.HasError">
<summary>
Whether there is an error message at the moment. This is a shortcut for writing "resolver.Context.ErrorMessage != null".
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.ValueResolvers.ValueResolver.ValueType">
<summary>
The type of value that this resolver instance is supposed to get.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.ValueResolvers.ValueResolver.GetWeakValue(System.Int32)">
<summary>
Gets a value from the value resolver in a weakly typed manner.
</summary>
<param name="selectionIndex">The selection index at which to get the value, in the case of multi-selection. Defaults to 0.</param>
<returns>The value that was gotten.</returns>
</member>
<member name="M:Sirenix.OdinInspector.Editor.ValueResolvers.ValueResolver.DrawError">
<summary>
Draws an error message box if there is an error, and does nothing if there is no error.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.ValueResolvers.ValueResolver.GetFromContextWeak(Sirenix.OdinInspector.Editor.ValueResolvers.ValueResolverContext@)">
<summary>
Creates a new value resolver instance from a pre-built context struct, in a weakly typed fashion, though the result
is the same as using a strongly typed generic overload. This is a more advanced use that requires you to
know how the context needs to be set up before value resolution happens. However, this allows you to do more advanced
things like adjust various context values before string resolution happens.
</summary>
<param name="context">The pre-built context that should be used to get a resolver.</param>
</member>
<member name="M:Sirenix.OdinInspector.Editor.ValueResolvers.ValueResolver.GetFromContext``1(Sirenix.OdinInspector.Editor.ValueResolvers.ValueResolverContext@)">
<summary>
Creates a new value resolver instance from a pre-built context struct. This is a more advanced use that requires you to
know how the context needs to be set up before value resolution happens. However, this allows you to do more advanced
things like adjust various context values before string resolution happens.
</summary>
<param name="context">The pre-built context that should be used to get a resolver.</param>
</member>
<member name="M:Sirenix.OdinInspector.Editor.ValueResolvers.ValueResolver.Get(System.Type,Sirenix.OdinInspector.Editor.InspectorProperty,System.String)">
<summary>
Creates a new value resolver instance in a weakly typed fashion, though the result is the same as using a strongly typed generic overload.
This is useful when you don't know at compile time which type you want to resolve.
</summary>
<param name="resultType">The type of value that the new resolver should resolve.</param>
<param name="property">The property that is the context for the resolution to happen in.</param>
<param name="resolvedString">The string that should be resolved to a value.</param>
</member>
<member name="M:Sirenix.OdinInspector.Editor.ValueResolvers.ValueResolver.Get(System.Type,Sirenix.OdinInspector.Editor.InspectorProperty,System.String,Sirenix.OdinInspector.Editor.ValueResolvers.NamedValue[])">
<summary>
Creates a new value resolver instance in a weakly typed fashion, though the result is the same as using a strongly typed generic overload.
This is useful when you don't know at compile time which type you want to resolve.
</summary>
<param name="resultType">The type of value that the new resolver should resolve.</param>
<param name="property">The property that is the context for the resolution to happen in.</param>
<param name="resolvedString">The string that should be resolved to a value.</param>
<param name="namedArgs">The extra named args that this resolver has access to. Passing in a named arg that already exists will silently override the pre-existing named arg.</param>
</member>
<member name="M:Sirenix.OdinInspector.Editor.ValueResolvers.ValueResolver.Get``1(Sirenix.OdinInspector.Editor.InspectorProperty,System.String)">
<summary>
Creates a new value resolver instance.
</summary>
<typeparam name="TResult">The type of value that the new resolver should resolve.</typeparam>
<param name="property">The property that is the context for the resolution to happen in.</param>
<param name="resolvedString">The string that should be resolved to a value.</param>
</member>
<member name="M:Sirenix.OdinInspector.Editor.ValueResolvers.ValueResolver.Get``1(Sirenix.OdinInspector.Editor.InspectorProperty,System.String,Sirenix.OdinInspector.Editor.ValueResolvers.NamedValue[])">
<summary>
Creates a new value resolver instance.
</summary>
<typeparam name="TResult">The type of value that the new resolver should resolve.</typeparam>
<param name="property">The property that is the context for the resolution to happen in.</param>
<param name="resolvedString">The string that should be resolved to a value.</param>
<param name="namedArgs">The extra named args that this resolver has access to. Passing in a named arg that already exists will silently override the pre-existing named arg.</param>
</member>
<member name="M:Sirenix.OdinInspector.Editor.ValueResolvers.ValueResolver.Get(System.Type,Sirenix.OdinInspector.Editor.InspectorProperty,System.String,System.Object)">
<summary>
Creates a new value resolver instance in a weakly typed fashion, though the result is the same as using a strongly typed generic overload.
This is useful when you don't know at compile time which type you want to resolve.
</summary>
<param name="resultType">The type of value that the new resolver should resolve.</param>
<param name="property">The property that is the context for the resolution to happen in.</param>
<param name="resolvedString">The string that should be resolved to a value.</param>
<param name="fallbackValue">The value that the resolver should return if the string cannot be resolved to anything, or if there is an error in creating a resolver, or if resolution itself throws an exception.</param>
</member>
<member name="M:Sirenix.OdinInspector.Editor.ValueResolvers.ValueResolver.Get(System.Type,Sirenix.OdinInspector.Editor.InspectorProperty,System.String,System.Object,Sirenix.OdinInspector.Editor.ValueResolvers.NamedValue[])">
<summary>
Creates a new value resolver instance in a weakly typed fashion, though the result is the same as using a strongly typed generic overload.
This is useful when you don't know at compile time which type you want to resolve.
</summary>
<param name="resultType">The type of value that the new resolver should resolve.</param>
<param name="property">The property that is the context for the resolution to happen in.</param>
<param name="resolvedString">The string that should be resolved to a value.</param>
<param name="fallbackValue">The value that the resolver should return if the string cannot be resolved to anything, or if there is an error in creating a resolver, or if resolution itself throws an exception.</param>
<param name="namedArgs">The extra named args that this resolver has access to. Passing in a named arg that already exists will silently override the pre-existing named arg.</param>
</member>
<member name="M:Sirenix.OdinInspector.Editor.ValueResolvers.ValueResolver.GetForString(Sirenix.OdinInspector.Editor.InspectorProperty,System.String)">
<summary>
<para>Creates a new value resolver instance meant to resolve a string value in particular. This is a shorthand for creating a string resolver that has the resolved string as a fallback value.</para>
<para>This special case will get you the behaviour where, if you pass in a string that is not meant to be resolved in a special way, the value resolver will just pass you that string back as the result value.</para>
</summary>
<param name="property">The property that is the context for the resolution to happen in.</param>
<param name="resolvedString">The string that should be resolved to a value.</param>
</member>
<member name="M:Sirenix.OdinInspector.Editor.ValueResolvers.ValueResolver.GetForString(Sirenix.OdinInspector.Editor.InspectorProperty,System.String,Sirenix.OdinInspector.Editor.ValueResolvers.NamedValue[])">
<summary>
<para>Creates a new value resolver instance meant to resolve a string value in particular. This is a shorthand for creating a string resolver that has the resolved string as a fallback value.</para>
<para>This special case will get you the behaviour where, if you pass in a string that is not meant to be resolved in a special way, the value resolver will just pass you that string back as the result value.</para>
</summary>
<param name="property">The property that is the context for the resolution to happen in.</param>
<param name="resolvedString">The string that should be resolved to a value.</param>
<param name="namedArgs">The extra named args that this resolver has access to. Passing in a named arg that already exists will silently override the pre-existing named arg.</param>
</member>
<member name="M:Sirenix.OdinInspector.Editor.ValueResolvers.ValueResolver.Get``1(Sirenix.OdinInspector.Editor.InspectorProperty,System.String,``0)">
<summary>
Creates a new value resolver instance.
</summary>
<typeparam name="TResult">The type of value that the new resolver should resolve.</typeparam>
<param name="property">The property that is the context for the resolution to happen in.</param>
<param name="resolvedString">The string that should be resolved to a value.</param>
<param name="fallbackValue">The value that the resolver should return if the string cannot be resolved to anything, or if there is an error in creating a resolver, or if resolution itself throws an exception.</param>
</member>
<member name="M:Sirenix.OdinInspector.Editor.ValueResolvers.ValueResolver.Get``1(Sirenix.OdinInspector.Editor.InspectorProperty,System.String,``0,Sirenix.OdinInspector.Editor.ValueResolvers.NamedValue[])">
<summary>
Creates a new value resolver instance.
</summary>
<typeparam name="TResult">The type of value that the new resolver should resolve.</typeparam>
<param name="property">The property that is the context for the resolution to happen in.</param>
<param name="resolvedString">The string that should be resolved to a value.</param>
<param name="fallbackValue">The value that the resolver should return if the string cannot be resolved to anything, or if there is an error in creating a resolver, or if resolution itself throws an exception.</param>
<param name="namedArgs">The extra named args that this resolver has access to. Passing in a named arg that already exists will silently override the pre-existing named arg.</param>
</member>
<member name="M:Sirenix.OdinInspector.Editor.ValueResolvers.ValueResolver.GetCombinedErrors(Sirenix.OdinInspector.Editor.ValueResolvers.ValueResolver,Sirenix.OdinInspector.Editor.ValueResolvers.ValueResolver,Sirenix.OdinInspector.Editor.ValueResolvers.ValueResolver,Sirenix.OdinInspector.Editor.ValueResolvers.ValueResolver,Sirenix.OdinInspector.Editor.ValueResolvers.ValueResolver,Sirenix.OdinInspector.Editor.ValueResolvers.ValueResolver,Sirenix.OdinInspector.Editor.ValueResolvers.ValueResolver,Sirenix.OdinInspector.Editor.ValueResolvers.ValueResolver)">
<summary>
Gets a nicely formatted string that lists all the errors in the given set of value resolvers. The returned value is null if there are no errors.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.ValueResolvers.ValueResolver.GetCombinedErrors(Sirenix.OdinInspector.Editor.ValueResolvers.ValueResolver,Sirenix.OdinInspector.Editor.ValueResolvers.ValueResolver,Sirenix.OdinInspector.Editor.ValueResolvers.ValueResolver,Sirenix.OdinInspector.Editor.ValueResolvers.ValueResolver,Sirenix.OdinInspector.Editor.ValueResolvers.ValueResolver,Sirenix.OdinInspector.Editor.ValueResolvers.ValueResolver,Sirenix.OdinInspector.Editor.ValueResolvers.ValueResolver,Sirenix.OdinInspector.Editor.ValueResolvers.ValueResolver,Sirenix.OdinInspector.Editor.ValueResolvers.ValueResolver[])">
<summary>
Gets a nicely formatted string that lists all the errors in the given set of value resolvers. The returned value is null if there are no errors.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.ValueResolvers.ValueResolver.DrawErrors(Sirenix.OdinInspector.Editor.ValueResolvers.ValueResolver,Sirenix.OdinInspector.Editor.ValueResolvers.ValueResolver,Sirenix.OdinInspector.Editor.ValueResolvers.ValueResolver,Sirenix.OdinInspector.Editor.ValueResolvers.ValueResolver,Sirenix.OdinInspector.Editor.ValueResolvers.ValueResolver,Sirenix.OdinInspector.Editor.ValueResolvers.ValueResolver,Sirenix.OdinInspector.Editor.ValueResolvers.ValueResolver,Sirenix.OdinInspector.Editor.ValueResolvers.ValueResolver)">
<summary>
Draws error boxes for all errors in the given value resolvers, or does nothing if there are no errors. This is equivalent to calling DrawError() on all resolvers passed to this method.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.ValueResolvers.ValueResolver.DrawErrors(Sirenix.OdinInspector.Editor.ValueResolvers.ValueResolver,Sirenix.OdinInspector.Editor.ValueResolvers.ValueResolver,Sirenix.OdinInspector.Editor.ValueResolvers.ValueResolver,Sirenix.OdinInspector.Editor.ValueResolvers.ValueResolver,Sirenix.OdinInspector.Editor.ValueResolvers.ValueResolver,Sirenix.OdinInspector.Editor.ValueResolvers.ValueResolver,Sirenix.OdinInspector.Editor.ValueResolvers.ValueResolver,Sirenix.OdinInspector.Editor.ValueResolvers.ValueResolver,Sirenix.OdinInspector.Editor.ValueResolvers.ValueResolver[])">
<summary>
Draws error boxes for all errors in the given value resolvers, or does nothing if there are no errors. This is equivalent to calling DrawError() on all resolvers passed to this method.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.ValueResolvers.ValueResolver`1">
<summary>
<para>A ValueResolver resolves a string to a value of a given type, given an InspectorProperty instance to use as context. Call <see cref="M:Sirenix.OdinInspector.Editor.ValueResolvers.ValueResolver.Get``1(Sirenix.OdinInspector.Editor.InspectorProperty,System.String)"/> to get an instance of a ValueResolver.</para>
<para>Value resolvers are a globally extendable system that can be hooked into and modified or changed by creating and registering a <see cref="T:Sirenix.OdinInspector.Editor.ValueResolvers.ValueResolverCreator"/>.</para>
<para>See Odin's tutorials for details and examples of how to use ValueResolvers.</para>
</summary>
</member>
<member name="F:Sirenix.OdinInspector.Editor.ValueResolvers.ValueResolver`1.Func">
<summary>
The delegate that does the actual value resolution. You should not call this manually, but instead call <see cref="M:Sirenix.OdinInspector.Editor.ValueResolvers.ValueResolver`1.GetValue(System.Int32)"/>.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.ValueResolvers.ValueResolver`1.ValueType">
<summary>
The type of value that this resolver instance is supposed to get. Always equal to typeof(<see cref="!:TResult"/>).
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.ValueResolvers.ValueResolver`1.GetValue(System.Int32)">
<summary>
Gets a value from the value resolver.
</summary>
<param name="selectionIndex">The selection index at which to get the value, in the case of multi-selection. Defaults to 0.</param>
<returns>The value that was gotten.</returns>
</member>
<member name="M:Sirenix.OdinInspector.Editor.ValueResolvers.ValueResolver`1.GetWeakValue(System.Int32)">
<summary>
Gets a value from the value resolver in a weakly typed manner.
</summary>
<param name="selectionIndex">The selection index at which to get the value, in the case of multi-selection. Defaults to 0.</param>
<returns>The value that was gotten.</returns>
</member>
<member name="T:Sirenix.OdinInspector.Editor.ValueResolvers.ValueResolverContext">
<summary>
This struct contains all of a ValueResolver's configurations and values it needs to function. For performance and simplicity reasons, this is a single very large struct that lives on a ValueResolver instance and is passed around by ref to anything that needs it.
</summary>
</member>
<member name="F:Sirenix.OdinInspector.Editor.ValueResolvers.ValueResolverContext.Property">
<summary>
The property that *provides* the context for the value resolution. This is the instance that was passed to the resolver when it was created. Note that this is different from <see cref="P:Sirenix.OdinInspector.Editor.ValueResolvers.ValueResolverContext.ContextProperty"/>, which is based on this value, but almost always isn't the same InspectorProperty instance.
</summary>
</member>
<member name="F:Sirenix.OdinInspector.Editor.ValueResolvers.ValueResolverContext.ErrorMessage">
<summary>
The error message, if a valid value resolution wasn't found, or if creation of the value resolver failed because <see cref="P:Sirenix.OdinInspector.Editor.ValueResolvers.ValueResolverContext.ResolvedString"/> was invalid, or if value resolution was run but threw an exception. (In this last case, <see cref="F:Sirenix.OdinInspector.Editor.ValueResolvers.ValueResolverContext.ErrorMessageIsDueToException"/> will be true.)
</summary>
</member>
<member name="F:Sirenix.OdinInspector.Editor.ValueResolvers.ValueResolverContext.NamedValues">
<summary>
The named values that are available to the value resolver. Use this field only to get and set named values - once the ValueResolver has been created, new named values will have no effect.
</summary>
</member>
<member name="F:Sirenix.OdinInspector.Editor.ValueResolvers.ValueResolverContext.FallbackValue">
<summary>
This is the fallback value that the value resolver will return if there is an error or failed resolution for any reason.
</summary>
</member>
<member name="F:Sirenix.OdinInspector.Editor.ValueResolvers.ValueResolverContext.HasFallbackValue">
<summary>
Whether there is a fallback value. This boolean exists because then null is also a valid fallback value. This boolean will always be true if an overload is used that takes a fallback value parameter.
</summary>
</member>
<member name="F:Sirenix.OdinInspector.Editor.ValueResolvers.ValueResolverContext.ErrorMessageIsDueToException">
<summary>
This will be true if <see cref="F:Sirenix.OdinInspector.Editor.ValueResolvers.ValueResolverContext.ErrorMessage"/> is not null and the message was caused by an exception thrown by code invoked during an actual value resolution.
</summary>
</member>
<member name="F:Sirenix.OdinInspector.Editor.ValueResolvers.ValueResolverContext.LogExceptions">
<summary>
Whether exceptions thrown during value resolution should be logged to the console.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.ValueResolvers.ValueResolverContext.ResultType">
<summary>
The type of value that the resolver is resolving.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.ValueResolvers.ValueResolverContext.ResolvedString">
<summary>
The string that is resolved to get a value.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.ValueResolvers.ValueResolverContext.SyncRefParametersWithNamedValues">
<summary>
Whether the value resolver should sync ref parameters of invoked methods with named values. If this is true, then if a ref or out parameter value is changed during value resolution, the named value associated with that parameter will also be changed to the same value.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.ValueResolvers.ValueResolverContext.IsResolved">
<summary>
Whether this context has been resolved.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.ValueResolvers.ValueResolverContext.ParentType">
<summary>
The type that is the parent of the value resolution, ie, the type that is the context. This is the same as <see cref="P:Sirenix.OdinInspector.Editor.ValueResolvers.ValueResolverContext.ContextProperty"/>.ValueEntry.TypeOfValue.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.ValueResolvers.ValueResolverContext.ContextProperty">
<summary>
The property that *is* the context for the value resolution. This is not the instance that was passed to the resolver when it was created, but this value is based on that instance. This is the property that provides the actual context - for example, if <see cref="F:Sirenix.OdinInspector.Editor.ValueResolvers.ValueResolverContext.Property"/> is for a member of a type - or for an element in a collection contained by a member - this value will be the parent property for the type that contains that member. Only if <see cref="F:Sirenix.OdinInspector.Editor.ValueResolvers.ValueResolverContext.Property"/> is the tree's root property is <see cref="P:Sirenix.OdinInspector.Editor.ValueResolvers.ValueResolverContext.ContextProperty"/> the same as <see cref="F:Sirenix.OdinInspector.Editor.ValueResolvers.ValueResolverContext.Property"/>.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.ValueResolvers.ValueResolverContext.GetParentValue(System.Int32)">
<summary>
Gets the parent value which provides the context of the resolver.
</summary>
<param name="selectionIndex">The selection index of the parent value to get.</param>
</member>
<member name="M:Sirenix.OdinInspector.Editor.ValueResolvers.ValueResolverContext.SetParentValue(System.Int32,System.Object)">
<summary>
Sets the parent value which provides the context of the resolver.
</summary>
<param name="selectionIndex">The selection index of the parent value to set.</param>
<param name="value">The value to set.</param>
</member>
<member name="M:Sirenix.OdinInspector.Editor.ValueResolvers.ValueResolverContext.AddDefaultContextValues">
<summary>
Adds the default named values of "property" and "value" to the context's named values.
This method is usually automatically invoked when a resolver is created, so there
is no need to invoke it manually.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.EditorIconsOverview">
<summary>
Opens a window which displays a list of all icons available from <see cref="T:Sirenix.Utilities.Editor.EditorIcons"/>.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.EditorIconsOverview.OpenEditorIconsOverview">
<summary>
Opens a window which displays a list of all icons available from <see cref="T:Sirenix.Utilities.Editor.EditorIcons"/>.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.EditorIconsOverview.BuildSelectionTree(Sirenix.OdinInspector.Editor.OdinMenuTree)">
<summary>
Builds the selection tree.
</summary>
</member>
<member name="P:Sirenix.OdinInspector.Editor.GettingStarted.GettingStartedWindow.OdinBg">
<summary>
Gets a texture of an odin bg symbol.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.OdinInspectorAboutWindow">
<summary>
Adds menu items to the Unity Editor, draws the About window, and the preference window found under Edit > Preferences > Odin Inspector.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.StaticInspectorWindow">
<summary>
Access the StaticInspectorWindow from Tools > Odin > Inspector > Static Inspector.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.StaticInspectorWindow.AccessModifierFlags">
<summary>
Member filter for access modifiers.
</summary>
</member>
<member name="F:Sirenix.OdinInspector.Editor.StaticInspectorWindow.AccessModifierFlags.Public">
<summary>
include public members.
</summary>
</member>
<member name="F:Sirenix.OdinInspector.Editor.StaticInspectorWindow.AccessModifierFlags.Private">
<summary>
Include Non-public members.
</summary>
</member>
<member name="F:Sirenix.OdinInspector.Editor.StaticInspectorWindow.AccessModifierFlags.All">
<summary>
Include both public and non-public members.
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Editor.StaticInspectorWindow.MemberTypeFlags">
<summary>
Member filter for member types.
</summary>
</member>
<member name="F:Sirenix.OdinInspector.Editor.StaticInspectorWindow.MemberTypeFlags.None">
<summary>
No members included.
</summary>
</member>
<member name="F:Sirenix.OdinInspector.Editor.StaticInspectorWindow.MemberTypeFlags.Fields">
<summary>
Include field members.
</summary>
</member>
<member name="F:Sirenix.OdinInspector.Editor.StaticInspectorWindow.MemberTypeFlags.Properties">
<summary>
Include property members.
</summary>
</member>
<member name="F:Sirenix.OdinInspector.Editor.StaticInspectorWindow.MemberTypeFlags.Methods">
<summary>
Include method members.
</summary>
</member>
<member name="F:Sirenix.OdinInspector.Editor.StaticInspectorWindow.MemberTypeFlags.Groups">
<summary>
Include group members.
</summary>
</member>
<member name="F:Sirenix.OdinInspector.Editor.StaticInspectorWindow.MemberTypeFlags.BaseTypeMembers">
<summary>
Include members from the base types.
</summary>
</member>
<member name="F:Sirenix.OdinInspector.Editor.StaticInspectorWindow.MemberTypeFlags.Obsolete">
<summary>
Include members marked with the Obsolete attribute.
</summary>
</member>
<member name="F:Sirenix.OdinInspector.Editor.StaticInspectorWindow.MemberTypeFlags.AllButObsolete">
<summary>
Include all members except members marked with the Obsolete attribute.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.StaticInspectorWindow.ShowWindow">
<summary>
Shows the window.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.StaticInspectorWindow.InspectType(System.Type,System.Nullable{Sirenix.OdinInspector.Editor.StaticInspectorWindow.AccessModifierFlags},System.Nullable{Sirenix.OdinInspector.Editor.StaticInspectorWindow.MemberTypeFlags})">
<summary>
Opens a new static inspector window for the given type.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.StaticInspectorWindow.OnImGUI">
<summary>
Draws the Odin Editor Window.
</summary>
</member>
<member name="M:Sirenix.OdinInspector.Editor.StaticInspectorWindow.DrawEditor(System.Int32)">
<summary>
Draws the editor for the this.CurrentDrawingTargets[index].
</summary>
</member>
<member name="T:Sirenix.OdinInspector.Internal.UnityNetworkingUtility">
<summary>
Contains references to UnityEngine.Networking types. These types have been removed in Unity 2019+, and thus may be null.
</summary>
</member>
<member name="T:Sirenix.Serialization.AOTGenerationConfig">
<summary>
Contains configuration for generating an assembly that provides increased AOT support in Odin.
</summary>
</member>
<member name="P:Sirenix.Serialization.AOTGenerationConfig.AutomateBeforeBuilds">
<summary>
<para>
Whether to automatically scan the project and generate an AOT dll, right before builds. This will only affect platforms that are in the <see cref="P:Sirenix.Serialization.AOTGenerationConfig.AutomateForPlatforms"/> list.
</para>
<para>
**This will only work on Unity 5.6 and higher!**
</para>
</summary>
</member>
<member name="P:Sirenix.Serialization.AOTGenerationConfig.DeleteDllAfterBuilds">
<summary>
Whether to automatically delete the generated AOT dll after a build has completed.
</summary>
</member>
<member name="P:Sirenix.Serialization.AOTGenerationConfig.AutomateForPlatforms">
<summary>
A list of platforms to automatically scan the project and generate an AOT dll for, right before builds. This will do nothing unless <see cref="P:Sirenix.Serialization.AOTGenerationConfig.AutomateBeforeBuilds"/> is true.
</summary>
</member>
<member name="P:Sirenix.Serialization.AOTGenerationConfig.AOTFolderPath">
<summary>
The path to the AOT folder that the AOT .dll and linker file is created in, relative to the current project folder.
</summary>
</member>
<member name="M:Sirenix.Serialization.AOTGenerationConfig.ScanProject">
<summary>
Scans the entire project for types to support AOT serialization for.
</summary>
</member>
<member name="M:Sirenix.Serialization.AOTGenerationConfig.GenerateDLL">
<summary>
Generates an AOT DLL, using the current configuration of the AOTGenerationConfig instance.
</summary>
</member>
<member name="T:Sirenix.Utilities.EnsureOdinInspectorDefine">
<summary>
Defines the ODIN_INSPECTOR symbol.
</summary>
</member>
<member name="T:Sirenix.Utilities.Editor.SerializationDebuggerWindow">
<summary>
The Odin Inspector Serialization Debugger Window.
</summary>
<seealso cref="T:Sirenix.OdinInspector.Editor.OdinEditorWindow" />
</member>
<member name="M:Sirenix.Utilities.Editor.SerializationDebuggerWindow.ShowWindow">
<summary>
Opens the Serialization Debugger Window with the last debugged type.
</summary>
</member>
<member name="M:Sirenix.Utilities.Editor.SerializationDebuggerWindow.ShowWindow(System.Type)">
<summary>
Opens the Serialization Debugger Window and debugs the given type.
</summary>
<param name="type">The type to debug serialization of.</param>
</member>
<member name="M:Sirenix.Utilities.Editor.SerializationDebuggerWindow.OnEnable">
<summary>
Initializes the Serialization Debugger Window.
</summary>
</member>
</members>
</doc>