Odin Inspector Version 0.9.0.4

Highlights

  • Added a new InlineEditor attribute which displays an editor for any Unity object inline in the inspector. Check it out in the attributes overview demo scene.
  • Added support for Unity 5.6

Additions

  • Added a Bounds drawer for drawing Unity's Bounds struct
  • Added better feedback for when a user declares invalid [OnInspectorGUI] and [Button] methods.
  • Added ShowDrawerChain attribute to help debugging which drawers are being used for any given property, and in what order each property is called.
  • Added GUIStyle drawer

Fixes

  • GuessIfUnityWillSerialize now always returns true for Unity object types, even if they're abstract.
  • Button methods can now have a return type without causing invalid IL exceptions.
  • When multiple objects in the hierarchy are selected, and you are adding a new instance to an Odin serialized list, it will now give each selected list a unique instance of an object, instead of the same reference.
  • When lists are serialized by Unity, Odin will no longer present the user with the instance creator that has support for polymorphism. Instead the only viable type is created automatically by inserting a null value. Since Unity doesn't support null, Unity will automatically create the correct instance.
  • Fixed a rare case where SlideRects lost the ability to gain focus.
  • It no longer breaks the inspector when errors occur in methods referenced from attributes.
  • Fixed an issue where the paste context menu item was disabled when it shouldn't be.
  • Fixed various small layout issues, where some fields would have a 4px offset.
  • The DisplayAsString attribute now works for list-elements as well.
  • Removed the "Not Serialized" label from the instance creator window since Odin by default serializes everything regardless of the System.Serializable attribute.
  • Property methods that are overridden and need to have aliases created are now handled correctly and in a far more solid way. Note that aliases are explicitly not created for abstract or virtual methods which have override implementations in derived types.
  • SerializedBehaviour now derives from Behaviour instead of MonoBehaviour, as intended.
  • Fixed potential infinite loop during deserialization. Deserialization should now be far more resistant to breaking in this way, due to the changes made.
  • Fixed rare case where there would be a serialization layout data mismatch.
  • Serialization logging and error handling settings are now actually used.
  • Corrected reflection name lookups for internal Unity members whose names have changed in 5.6.
  • Added support for Unity custom PropertyDrawers to draw generic type definitions, so we can draw Unity's new ExposedReferencePropertyDrawer in 5.6.
  • ExitGUIExceptions are now also rethrown when they are an exception's inner exception.
  • Fixed compiler warnings in source code.
  • Fixed an issue where a (recoverable) data layout mismatch would rarely occur when skipping complex data structures with no metadata.
  • ObjectFields now handles special "Unity null" cases.
  • PropertyValueEntry.GetValueOverride() now correctly identifies destroyed Unity objects as a NullReference.
  • Fixed a bug where NullableReferenceDrawer would draw the special object-picker if a Unity object was serialized with Odin.

Changes

  • Applying the [OdinSerialize] attribute to any field now forces Odin to serialize the value, regardless of whether Unity will also serialize the value.
  • Demo folder was moved from Plugins/Sirenix/Odin Inspector to Plugins/Sirenix/Demos/Odin Inspector
  • The list drawer has gotten new, prettier icons.
  • Made SerializedStateMachineBehaviour abstract.
  • UnityVersion.cs is now statically initialized at editor load, to ensure it is not initialized later at an illegal time.
  • Renamed IsUnityNull to SafeIsUnityNull
  • Updated the demo scene

Odin Inspector Version 0.9.0.3

Highlights

  • Added link.xml to prevent code stripping from affecting relevant Odin assemblies. This means serialization is now supported on most platforms. If you succeed or fail in building properly to any specific platform please, let us know. This has only been tested on WebGL so far.

Fixes

  • Fixed a bug where the context menu for Clear list would be wrongly disabled.
  • Fixed rare occasion where Unity's "Failed to load inspected type" error would still show up when deleting a script.
  • Fixed infinite loop that sometimes occurred when skipping an entry during deserialization.
  • Fixed issue where InfoBox would not draw for null object fields.
  • Fixed issue where SirenixEditorFields.DelayedTextField would take a value from a seemingly random other field.
  • Fixed issue where [Required] would always show an error box for all non-unity objects.
  • Fixed issue where properties drawn by custom Unity PropertyDrawers were drawn twice when they used EditorGUI.PropertyField or EditorGUILayout.PropertyField with their own property as argument.
  • Right-clicking property context highlight now works again.
  • Object pickers can now be initialized outside a GUI context.
  • Fixed an issue where ToggleGroup didn't show an error message when referencing a property not part of the group.

Added

  • Added link.xml to prevent code stripping from affecting relevant Odin assemblies. This means serialization is now supported on most platforms. If you succeed or fail in building properly to any specific platform please, let us know. This has only been tested on WebGL so far.
  • Added SerializedStateMachineBehaviour, which can be inherited from if you wish Odin serialization support for a StateMachineBehaviour.
  • Added "Change Type" to right-click context menu for reference types serialized by Odin.
  • Added DetailedInfoBoxAttribute to display an info box with a hideable details .
  • ListDrawerSettingsAttribute now has showLabels option to enfores toggles for list elements.
  • SirenixAssembliesPath added to SirenixAssetPaths.

Changes

  • Open in new inspector shortcut on ObjectFields are now always enabled.
  • Renamed EnabledIf to EnableIf to match DisableIf, ShowIf and HideIf.
  • Renamed VisibleIfAttribute to ShowIfAttribute and added HideIfAttribute.
  • Renamed Property Configs to Property Contexts everywhere.
  • Removed option to enable or disable paging globally. Paging is now always enabled for lists and dictionaries (dictionaries are not yet supported, but will be soon).
  • Context menu for changing types and set to null are now shown as disabled if property is marked read-only.
  • Removed option to disable paging while lists are collapsed; this is now always the case.
  • [Required] will now mark a string property as missing if the string is empty.
  • Added default group name to ButtonGroup.
  • Removed label from BoxGroup. Group name will now be used instead.
  • BoxGroup label is now oriented to the left, instead of centered, by default.
  • Default number of items shown per page in lists has been increased from 8 to 15.
  • Boolean drawer no longer has an expanded clickable area when no label is drawn.
  • Active GUI Icons are now less bright.
  • All data formatters now use the same SkipEntry logic.

Odin Inspector Version 0.9.0.2

Highlights

  • Added a new window found in “Window > Odin Scene Validator”, which scans all open scenes for errors, warnings and missing references.

Fixes

  • Fixed a crash that occurred when applying PrefabModifications that change an array's length.
  • Fixed issue where property children would not be properly updated when a list length was changed by something other than inserting or removing an element, which would throw errors upon inserting list elements.
  • Fixed issue where custom Unity PropertyDrawers for PropertyAttributes weren't found and drawn in the inspector like other drawers.
  • Fixed issue where Unity's own PropertyDrawers and DecoratorDrawers weren't found and used in the inspector where applicable.
  • Fixed issue with ToggleGroup being unintuitive to use and updated examples accordingly.
  • Prefab modifications are now properly removed when parent values and list lengths change that make the modification paths invalid.
  • Fixed newly introduced compiler warnings and errors that occur when using Odin as source files.

Added

  • DrawerPriorityAttribute now works on custom Unity PropertyDrawers and DecoratorDrawers.
  • Added DrawerIsNotLocatableAttribute, which indicates that the DrawerLocator will not find this drawer, whether it has an InspectorDrawerAttribute defined or not.
  • Added IsChildOf and IsParentOf methods to InspectorProperty.

Changes

  • Prefab modifications can no longer have internal references to each other, making them more impervious to merge changes.
  • Removed prefab path resolution failure warning. There are cases where a modification path cannot be resolved for entirely legitimate, okay reasons.

Odin Inspector Version 0.9.0.1

Highlights

  • Added "Odin Attributes Overview" scene; a scene which contains examples of how to use all of Odin's attributes.
  • Added SirenixEditorFields.
  • Added the TabGroup attribute.
  • Added the ColorPalette attribute.

Fixes

  • Fixed an issue that caused a stack overflow when drawing a single property with multiple instances of the same attribute drawn by an attribute drawer with the DrawProperty behaviour.
  • Fixed an issue where the menu text in the Odin Preferences window would be cut off in some projects.
  • Fixed an issue where all drawn properties had unintended padding beneath them.
  • Fixed an issue where ValidateInput did nothing if no message was specified.
  • Fixed various spelling errors.

Changes

  • TitleAttribute no longer applies to list elements.
  • Demo folder is now located inside the Odin Inspector folder.