Table of Contents

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;
}