OfType Attribute
OfType was created to allow interface specification inside an Object Field.
public class MyMonoBehaviour : MonoBehaviour, ISerializationCallbackReceiver
{
[SerializeField, OfType(typeof(IConstraint))] private Component _constraint;
public IConstraint constraint { get; set; }
void ISerializationCallbackReceiver.OnBeforeSerialize() => _constraint = constraint as Component;
void ISerializationCallbackReceiver.OnAfterDeserialize() => constraint = _constraint as IConstraint;
}