A serializable Dictionary and property drawer for the Unity Editor, modeled visually after the Odin serialized dictionary.
This project is an extension of Sterberino's Original Work and aims to maintain and expand this project as needed for myself and others. Please also check out Their GitHub Page and show them support.
This Repo is no longer maintained. The project has been moved to sim2kid/UnitySerializedDictionary. Please use that repo for package updates and issues.
It uses ISerializationCallbackReceiver
to convert keys and values to serializable lists in the background, to allow for dictionary serialization in the editor.
Mostly uses switch statements to identify the type and handle drawing the editor fields and serializing/de-serializing values.
It allows for dynamically changing dictionary value types at runtime, and it supports:
- UnityEngine.Object (asset references and in scene components/ GameObjects)
- all the basic Number types, strings, and bool
- enums of any type
- All Vector types
- Bounds / BoundsInt and Rect / RectInt
- Gradients, Animation Curves, and Color
- Any struct or class that is serializable using JsonUtility (Although there is no general drawer for it yet)