Odin Inspector Version 1.0.1.5


Fixes

  • OnValidate is now properly invoked when values that are drawn by Odin are changed.
  • Fixed case where adding [AssemblyVersion] with rolling (IE, constantly changing) version numbers would cause Odin to constantly regenerate editors, and also cause Odin to be unable to draw. Versioning is now ignored when resolving Unity user-assemblies generated from project scripts, when in Unity's primary loaded AppDomain.
  • Editor generation is now far more robust. Type name collisions will no longer occur, as it now makes use of extern aliases to compile editors for types with the same full names (though Unity does not seem to be able to handle this properly). Additionally, it now correctly refuses to generate editors for types with names that are reserved keywords (such as "switch" or "class"), and gives proper warning messages when this case occurs.
  • Unity property drawers now show up be default, as CompositeDrawer's priority is no longer (0, 0, 1), above the default Unity property drawer priority, (0, 0, 0.5), but (0, 0, 0) as it should be.
  • Fixed issue where Odin wouldn't handle the case when a type is drawn because it is derived from a class that draws an inherited type and its child classes. This caused Odin to generate editors for types where it normally shouldn't.
  • Fixed case where prefab list length modifications couldn't be applied to lists (not arrays) with an element type that is a value type.
  • Members decorated with [OdinSerialize] that would also be serialized by Unity, are now properly caught by Odin's property system as backed by Odin serialization. This fixes an issue where enum values would be reset to their default values when prefab values were applied.
  • Fixed issue with mixed values for some struct types when multi-selecting.
  • Fixed case where Odin scanning for custom editors would trigger a Unity error message: "Failed to load CustomEditor inspected type".
  • About window should now work again in all Unity versions.
  • Editor generation code should now be put into the proper Temp path on Unix-based systems, instead of a folder outside on the same level as the project root.
  • Fixed a bug where some editor icons would disappear after a scene load.
  • Fixed rare case where Odin-drawn Unity references would sometimes be set to null after a scene load.
  • Fixed a bug where some GUIStyles was initialized outside of the Unity GUI thread. This happened in some cases in newer unity versions when clicking on an Odin reference object picker.
  • Matrix4x4's 16 field properties now all always work in the inspector whether the Matrix4x4 is represented in a SerializedObject or not.
  • Odin can now properly compile 0 editors when there are no editors to compile, without any compiler errors.
  • Fixed case where editor types tree view would not display child conflicts correctly.
  • Polymorphism is no longer supported by property entries backed by Unity serialization; they will now always be the base type of the field, regardless of the type of the actual value being represented.
  • Vectors now shows the mixed value indicator for each component individually.
  • Odin now correctly guesses that Unity will serialize non-generic custom UnityEventBase-derived classes.
  • Odin now correctly draws custom Unity events in the inspector.
  • Added a parameterless constructor to the [HorizontalGroup] attribute.
  • Fixed an issue where backslash was used instead of forward slash in specific file paths, which resulted in some files being stored in the the wrong places on mac.
  • Added option in the Editor Type preferences window to enable editor generation logging, which provides information as to why a recompilation has happened.
  • Boxed value types can now be set to null in the inspector using the right-click context menu.

Changes

  • Overhauled the MinMaxSlider completely.
  • Downgraded "unexpected entry when expecting a node entry" serialization error to a warning.
  • Odin will now never recompile editors when in play mode.
  • Changes were made to InspectorUtilities to make selective property drawing more convenient.
  • BoxGroupAttribute now have a parameterless constructor in cases where you want a bug without a title.
  • If a SerializedObject is not provided for a property tree targeting a type derived from UnityEngine.Object, a SerializedObject instance for those targets will now be created for the property tree when using any of the PropertyTree.Create overloads.
  • Tweaked the serialization warning text to remove formatting tags.
  • Various validation attributes animates when an invalid value was given.
  • OdinEditor,OnInspectorGUI no longer waits until it has seen its first layout call to start drawing. The onus is now on the creator of the editor instance to ensure that the layout stack is valid and GUI calls come in the right order.
  • Vector and rect fields elements are now treated as seperate properties, and can therefore be mixed individually. All SirenixEditorGUI popup and dropdown methods have been marked as obsolete. Use SirenixEditorFields.Dropdown methods instead.

Added

  • Added option for duration and to disable shake animations.
  • Added two new attributes (EnableForPrefabOnly and ShowForPrefabOnly) which can be used to hide or disable properties on instances of prefabs.
  • Added inline Rect extension SetSize.
  • Added methods for drawing MinMaxSlider to SirenixEditorFields.
  • Ctrl-clicking the add button on lists and arrays of UnityEngine.Object types now adds a null value without prompting the user with the unity object-picker window.