Why Unity Object Reference?
Unity can’t serialize interfaces by default. The Engine can only store references to UnityEngine.Object instances, and the inspector only knows how to draw fields typed as concrete UnityEngine.Object subclasses.
That forces you to pick from numerous workarounds, typically with a wrapper type like SerializeInterface<T>, but this packages provides a way to serialize interfaces easily.
The goal of this package is to keep the API simple at the source-code level. Instead of writing:
[SerializeField]private UnityObjectReference<IPlayerCueInputProvider> _inputProvider;you can write:
[SerializeField]private IPlayerCueInputProvider _inputProvider;The ILPostProcessor handles the conversion automatically, allowing interfaces to behave much more like native Unity-serializable fields without requiring wrapper types throughout your codebase.