HorizontalGroup attribute has been added. Checkout it out in the updated demo scene
Odin now works in the latest Unity 2017 beta version.
Assembly documentation xml files are now included in the package. This means the api documentation now will show up in the IntelliSense.
Odin now works much better with external plugins. It now handles duplicate type name conflicts during editor generation far more gracefully, giving detailed warning messages (which can be disabled), and automatically disabling editor generation for the types in question to fix the error.
Fixed an error where private members in base-classes would by be found by attributes such as ShowIf and HideIf.
Fixed various errors that broke everything in the 2017.1 beta. NOTE: To fix errors in the 2017.1 beta, a feature has been disabled since an error was introduced by Unity that prevents it from working. The feature in question is drawing custom Unity Property Drawers for data which is not serialized by Unity. If an attribute seems to have no effect in 2017.1, it is likely because it was implemented by a custom Unity Property Drawer and the data is not being serialized by Unity.
Fixed a bug where you couldn't put several [CustomContextMenu] on a property and have them all show up in the context menu.
The Header and Title attributes are now part of the super drawer queue, which means they no will longer be indented by the [Indent] attribute as originally intended.
Fixed a lot of spacing inconsistencies between GUI Elements.
Fixed a bug where the ValidateInput attribute would break if the type was changed.
Fixed a bug where set-to-null did not work on Nullable<T> types.
The Space attribute will no longer be applied to List elements.
Fixed a bug where GUILayoutOptions.MaxWidth() specified the width instead of the MaxWidth.
Fixed TabGroup GUI popping issues.
Fixed an issue where EnumDrawer would not apply changes to the property.
Build serialization format can now only be set to data formats valid in builds.
Whether or not a property tree should draw the mono-script object field at the top, can now be specified via the new myPropertyTree.DrawMonoScriptObjectField property.
Odin Inspector Version 184.108.40.206
Added EnumToggleButtons attribute which draws an enum in a horizontal button group instead of a dropdown. Checkout the demo-scene for examples.
Fixed a bug where the InlineEditor would remain after object was removed.
A wild InspectorWindow no longer appears randomly in the middle of the screen after play mode triggered with "Maximize on Play" active has ended while an Odin-inspector inspected object is selected in invisible editor window..
Error message about FormatterLocator type load exceptions is now only triggered when relevant.
Odin Inspector preferences window is now called "Odin Preferences" instead of "Sirenix Preferences".
MonoScript property is no longer shown in Serialization preferences.
Fixed error where members that would be serialized by Odin, did not show up in non-Odin-serialized inspectors when ShowInInspector was applied to the member.
Fixed various bugs with copy/pasting values.
Serialization now works properly with nullable values.
Inspector now works for nullable value types like "Vector3?".
Fixed very obscure infinite property child creation loop that would occur in the first ever property update of a dictionary containing values with cyclic references to themselves, due to references not being registered yet at that time. Also added another fix to property tree reference handling in general, so that errors of this particular class can never occur again.
Fixed issue where you couldn't add elements to a list created by prefab modifications.
Fixed error where dictionary number keys would not be properly parsed from their key strings.
Massive amount of fixes to prefab modification system. It should now be far more robust than before.
When changing a dictionary key, the key turns red while it is invalid (due to the key already being in the dictionary) and thus ineligible for being changed.
References are now handled more robustly with prefab modifications.
Fixed case where all null values in for a property in multi-selection faultily resulted in a reference value conflict.
Fixed an error where PropertyListValueEntryChanger would not apply changes at the end of the frame causing layout issues and sometimes errors.
Odin no longer thinks that Unity will serialize jagged arrays and lists in lists.
Expanding a [ToggleGroup] will now collapse adjacent toggle groups. This feature can be disabled in the attribute.
Fixed rare issue where out of range exception would be thrown when inserting an element into a list.
Fixed infinite loop that would sometimes occur when a prefab value modification was auto-applied, but the application of that modification did not cause the auto-apply to stop applying.
Introduced a special case fix to TypeExtensions.GetEqualityComparerDelegate for Quaternion, so it also compares Quaternion's components to each other, so "default(Quaternion) == default(Quaternion)" will evaluate to true. This was causing prefab modifications to be applied every frame when a Quaternion was being inspected on a prefab instance, causing a lot of lag and incorrectly flagging Quaternion values as modified.
Added missing foldout to RectDrawer.
Fixed bug where generic inferral broke when some generic parameters for drawers were strongly typed.
DisableContextMenuAttribute now has options for choosing whether to disable context menu for member and/or child list elements.
Changed the cautionary serialization warning text to be more cautionary.
Odin Inspector preferences window is no longer opened as a utility window, but a regular window.
Renamed PropertyTree.Targets to PropertyTree.WeakTargets, and added strongly typed PropertyTree<T>.Targets.
InspectorProperty.LastDrawnValueRect is now context sensitive.
Odin Inspector Version 220.127.116.11
Inline editors are now always drawn with the GUI enabled. Hence, inline editors with [ReadOnly] values (or values that are not editable for other reasons) now work properly.
Fixed issue with InspectorProperty.LastDrawnValueRect.
Paging buttons on lists, arrays and dictionaries now work when GUI is disabled.
Unity-serialized values that are null, can now be corrected when property is not editable.
"Context-click -> Clear list" no longer works on lists that are not editable.
Enums now work in the inspector with values in the full range of long.MinValue to ulong.MaxValue, and negative enum values can be serialized.
Fixed issue where prefab modifications for values of added list elements would often fail to apply in the same frame as they were registered, causing them to lose values.
Major rework of drawer system internals. Removed the concept of append and prepend drawers; changed to just a single drawer chain to simplify the drawer system. Also changed drawer priorities to be less confusing - they now have three
levels: super, wrapper and value. If you have written custom Odin drawers, they will have to be updated to conform with the changes. If your drawer was an append or prepend drawer, remember to add a CallNextDrawer call respectively before or after drawing.
Methods are now also drawn with drawer chains. Therefore, ShowIf, HideIf, GUIColor, and other such attributes, now work on buttons in the inspector.
Renamed PropertyValueOverride to PropertyValueState.
Interface ISearchable was removed.
Removed the "search for settings" feature in the Odin Preferences Window as it was not working properly. This will be re-introduced once it is fixed and working properly.
Odin Inspector Version 18.104.22.168
75% of all members and classes are now documented inline
Added [SuppressInvalidAttributeError] attribute
Added delayed drawers for many more types.
Added Odin Inspector logo to the about window.
Invalid attribute error no longer appears for dictionary keys
All dictionary key types are now drawn with delayed drawers.
Fixed an error where InlineEditors would destroy some click events if expanded.
Fixed a potential error where dragging list items would not work.
Fixed issue with quaternion angle axis and indenting.
SirenixEditorGUI.DynamicPrimitiveField no longer incorrectly clamps values.
Odin now correctly guesses that Unity will not serialize non-Unity-object fields of the same type as the declaring type.
Scene Validator now actually only runs validation on types that Odin is configured to draw.
Fixed rare case where FormatterLocator made illegal Unity API calls when type load exceptions occurred during editor initialization.
AssemblyGenerator now handles missing assemblies better.
Fixed an issue where drop zones inside dragging elements was valid.
Fixed build error caused by a demo script.
InlineEditor now draws preview for GameObjects by default
Renamed isFolded parameter in Foldout method to isVisible, to convey the meaning of the state.
Renamed GlobalConfigWindow to SirenixPreferencesWindow.
Renamed OdinInspectorPreferences to OdinInspectorAboutWindow.
Renamed GetContainedType to GetReturnType
InspectorTypeDrawingConfig.GetDefaultEditorType now returns null for types that Odin cannot draw.