An improved and extended version of Tom Kail's ExtendedScriptableObjectDrawer.
(Reorderable lists and dictionaries can be found here)
Because the original implementation has significant drawbacks, such as breaking completely when nested, and overrides the default drawer for all scriptable objects, which isn't necessarily something you always want to be doing. This version fixes the drawer's problems, makes the "inlining" optional, and includes an attribute that allows you to draw any ScriptableObject as inlined on a one-off basis, and optionally to customise the appearance (label) of your inlined object.
Have your classes inherit from InlinedScriptableObject
and that's it. Alternatively, decorate a member (which can either inherit from a ScriptableObject
or an InlinedScriptableObject
) with the DrawInline
attribute. Look at the examples in the repo.