b/imfamous by imfamous

Unity - Odin - Inspector and Serializer v3.0.4

This post was published 5 years ago. Download links are most likely obsolete. If that's the case, try asking the uploader to re-upload.

Unity - Odin - Inspector and Serializer v3.0.4

Requirement: Unity 5.3.0 or higher | File size: 2.8 MB

Odin puts your Unity workflow on steroids, making it easy to build powerful and advanced user-friendly editors for you and your entire team.

HIGHLIGHTS
- Effortless Integration
- Editor Only Mode
- Odin Editor Windows
- Input Validation
- Serialize Anything
- Powerful Lists
- Insanely Extendable
- Color Palettes
- Dictionaries
- Much More!

• Effortless Integration
Odin is extremely easy to use and won't break your existing workflow. In fact, you don't even need to inherit from anything, which means your existing editors will continue to work even with Odin.

• Editor-Only Mode
Use Odin only for its editor improvements by disabling serialization completely.

• Odin Editor Windows
You can now use Odin to rapidly create custom Editor Windows to help organize your project and game data.

• Input Validation
Empower your entire team by allowing your developers to setup scene and input validations, making using Unity easier than ever for artists and developers alike.

• Serialize Anything
Odin uses our highly-rated custom serialization protocol, allowing you to either inherit from our SerializedBehaviour, SerializedScriptableObject etc. or add a few lines of code to your existing class, and everything serializable shall be serialized. Yes, even polymorphic types!

Odin serialized prefabs are deprecated in 2018.3+ due to the nested prefab system.

• Powerful Lists
All arrays and lists implementing Microsoft's IList interface are drawn by our powerful list drawer; drag & drop, insert and delete individual items, multi-dim arrays, tables, cross-list and even cross-window item dragging, paging, nested list drawing, and much more!

• Insanely Extendable
A powerful and flexible API lets you easily extend and modify how the inspector is drawn. Create entirely new property group types and custom drawers in moments!

• Much More!
Odin also adds; Dictionaries, Customizable Layouts, Asset Lists, Value Dropdowns, Inline Editor, Color Palettes.

NEW

Improvements
- Optimized several parts of the property system that turned out to be acting as performance bottlenecks in certain scenarios, particularly large project validation scans. Users who experienced project validation scans becoming slower in 3.0 should now see significant improvements, to the point of matching or in some cases even exceeding 2.1.x validation performance. If some users are still experiencing project validation scans which are far slower than in 2.1.x, please contact us with reproduction steps or detailed profiling data and we will look into it.
- Added null conditional operator support to attribute expression. This includes support for the following null conditional operations: member access (value?.member), element access (array?[index]), member assignment (value?.member = something), element assignment (array?[index] = something), member invocation (value?.method()), element invocation (array?[index]()). Note that the behaviour of this operator differs slightly from C#; the attribute expression version of the null conditional operator will consider destroyed UnityEngine.Object instances to be null, whereas in "vanilla" C#, it will not.
- OdinMenuTreeExtensions.SortMenuItemsByName now uses a far better number-aware sorting method, which should give both better sorting results, and better sorting performance.
- Removed or tweaked various usages of the current SerializedObject instance during inspection, so there are fewer reasons to work with it. Since it is lazy updated by Odin, this means that it will be updated more rarely and trigger fewer serialization calls.

Additions
- Added StringUtilities.NumberAwareStringCompare method.
- Added new overloads of OdinMenuTreeExtensions.SortMenuItemsByName for improved control of how sorting should be done.
- Added "Delete element" context menu item to collection elements.
- Added InvokeOnInitialize parameter to the OnValueChanged attribute, which will cause the action to be invoked when property initialization runs (IE when the inspector first opens, for instance), as well as when the value is actually changed.
- Added InspectorProperty.MarkSerializationRootDirty(), which marks the serialization root objects of the property dirty, if any such applicable roots exist and are UnityEngine.Object instances.
- Added InspectorProperty.MarkSerializationRootDirty(), which marks the serialization root objects of the property dirty, if any such applicable roots exist and are UnityEngine.Object instances.
- Added a new [DontValidate] attribute which can be put on members to prevent the validation system from running validation on them; they will not show validation messages in the inspector, nor will the project validator scan them.

Changes
- Removed the Sirenix.Utilities.Cache and Sirenix.Utilities.ICacheNotificationReceiver types. Use the Sirenix.Serialization.Utilities versions of these types instead.
- The Check for updates window now states what the current version is when the version is up to date.

Fixes
- Fixed case where property system would throw an exception when failing to create an alias property for an inherited member that has been overridden by a new member in a deriving type.
- The ListDrawerSettings attribute is no longer passed down to collection elements, so putting it on a list of lists or similarly nested collection member will only affect the top-level collection.
- Fixed error message that Odin's UnityPropertyHandlerUtility would give in Unity 2021.1 stating it could no longer find the m_propertyDrawer member in the UnityEditor.PropertyHandler type. It has been updated to reflected internal changes made to UnityEditor.PropertyHandler in 2021.1.
- Fixed case where Copy/Pasting values would break when deep copying and pasting the same objects multiple times.
- The searchable attribute is no longer inherited by a collection's elements when it is placed on a collection member.
- NullableReferenceDrawer will now give a better error message and not ruin the GUI layout draw stack when a seemingly Unity-serialization-backed member's value is incorrectly null.
- The RequireComponentValidator will now check whether the required types are actually components before checking for them. If they are not components, they will be bypassed and considered "valid".
- Fixed OdinEditorWindow.UseScrollView always being set to true when set, regardless of the value passed to the property setter.
- Fixed ListDrawerSettingsAttribute.CustomRemoveIndexFunct ion and CustomRemoveElementFunction not working when used with arrays.
- Fixed another case where the EULA popup window would break by wrongly triggering during a Unity Cloud Build. This is done by checking whether the editor is being run in batch mode.
- BoxGroup will now actually draw an error message if its label string is resolved and contains errors.
- Updated UnitySerializationUtility.GuessIfUnityWillSerializ e to reflected that generic UnityEngine.Object references are serialized by Unity in 2020.1 and above.
- Added UnityEngine.AnimationState to the UnitySerializationUtility.GuessIfUnityWillSerializ e method's blacklist of types that Unity will not serialize.

Homepage