Odin Inspector Version 1.0.0.2

Highlights

  • Added EnumToggleButtons attribute which draws an enum in a horizontal button group instead of a dropdown. Checkout the demo-scene for examples.

Fixes

  • 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.

Added

  • DisableContextMenuAttribute now has options for choosing whether to disable context menu for member and/or child list elements.
  • Implemented RectExtensions.Split

Changes

  • 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 1.0.0.1

Fixes

  • 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.

Changes

  • 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 1.0.0.0

Additions

  • 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.

Fixes

  • 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.

Changes

  • 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.