Class SerializableType<T>
Namespace: Aspid.FastTools.Types
Assembly: Aspid.FastTools.dll
SerializableType constrained to types assignable to T.
[Serializable]
public sealed class SerializableType<T> : SerializableType, ISerializableType, ISerializationCallbackReceiver
Type Parameters
T
Base constraint type; the picker offers only types assignable to it.
Inheritance
object ← SerializableTypeBase ← SerializableType ← SerializableType<T>
Implements
ISerializableType, ISerializationCallbackReceiver
Extension Methods
TextInputBaseFieldTextSelectionExtensions.AddOnCursorIndexChange<SerializableType<T>, TValue>(SerializableType<T>, Action), TextInputBaseFieldTextSelectionExtensions.AddOnSelectIndexChange<SerializableType<T>, TValue>(SerializableType<T>, Action), INotifyValueChangedExtensions.AddValueChanged<SerializableType<T>, TValue>(SerializableType<T>, EventCallback<ChangeEvent<TValue>>), ProfilerMarkerExtensionsForGenerator.Marker<SerializableType<T>>(SerializableType<T>), TextInputBaseFieldTextSelectionExtensions.RemoveOnCursorIndexChange<SerializableType<T>, TValue>(SerializableType<T>, Action), TextInputBaseFieldTextSelectionExtensions.RemoveOnSelectIndexChange<SerializableType<T>, TValue>(SerializableType<T>, Action), INotifyValueChangedExtensions.RemoveValueChanged<SerializableType<T>, TValue>(SerializableType<T>, EventCallback<ChangeEvent<TValue>>), TextInputBaseFieldExtensions.SetAutoCorrection<SerializableType<T>, TValue>(SerializableType<T>, bool), TextInputBaseFieldTextSelectionExtensions.SetCursorIndex<SerializableType<T>, TValue>(SerializableType<T>, int), TextInputBaseFieldExtensions.SetDelayed<SerializableType<T>, TValue>(SerializableType<T>, bool), TextInputBaseFieldTextSelectionExtensions.SetDoubleClickSelectsWord<SerializableType<T>, TValue>(SerializableType<T>, bool), TextInputBaseFieldExtensions.SetHideMobileInput<SerializableType<T>, TValue>(SerializableType<T>, bool), TextInputBaseFieldExtensions.SetHidePlaceholderOnFocus<SerializableType<T>, TValue>(SerializableType<T>, bool), TextInputBaseFieldExtensions.SetHideSoftKeyboard<SerializableType<T>, TValue>(SerializableType<T>, bool), SliderExtensions.SetHighValue<SerializableType<T>, TValue>(SerializableType<T>, TValue), TextInputBaseFieldExtensions.SetKeyboardType<SerializableType<T>, TValue>(SerializableType<T>, TouchScreenKeyboardType), BaseFieldExtensions.SetLabel<SerializableType<T>, TValue>(SerializableType<T>, string), SliderExtensions.SetLowValue<SerializableType<T>, TValue>(SerializableType<T>, TValue), TextInputBaseFieldExtensions.SetMaskChar<SerializableType<T>, TValue>(SerializableType<T>, char), TextInputBaseFieldExtensions.SetMaxLength<SerializableType<T>, TValue>(SerializableType<T>, int), TextInputBaseFieldExtensions.SetPassword<SerializableType<T>, TValue>(SerializableType<T>, bool), TextInputBaseFieldExtensions.SetPlaceholder<SerializableType<T>, TValue>(SerializableType<T>, string), TextInputBaseFieldExtensions.SetReadOnly<SerializableType<T>, TValue>(SerializableType<T>, bool), TextInputBaseFieldTextSelectionExtensions.SetSelectAllOnFocus<SerializableType<T>, TValue>(SerializableType<T>, bool), TextInputBaseFieldTextSelectionExtensions.SetSelectAllOnMouseUp<SerializableType<T>, TValue>(SerializableType<T>, bool), TextInputBaseFieldTextSelectionExtensions.SetSelectIndex<SerializableType<T>, TValue>(SerializableType<T>, int), TextInputBaseFieldTextSelectionExtensions.SetSelectable<SerializableType<T>, TValue>(SerializableType<T>, bool), TextInputBaseFieldTextSelectionExtensions.SetTripleClickSelectsLine<SerializableType<T>, TValue>(SerializableType<T>, bool), INotifyValueChangedExtensions.SetValue<SerializableType<T>, TValue>(SerializableType<T>, TValue, bool)
Examples
public class MyComponent : MonoBehaviour
{
[SerializeField] private SerializableType<MonoBehaviour>; _behaviorType;
private void Start()
{
Type type = _behaviorType; // always a MonoBehaviour subtype or null
if (type != null)
gameObject.AddComponent(type);
}
}
Remarks
Unity serializes a field by its declared type, so a SerializableType<T> assigned from code to a
field declared as SerializableType is reloaded unconstrained: the type survives, the constraint
does not.
Constructors
SerializableType(Type?)
Creates a wrapper holding type.
public SerializableType(Type? type)
Parameters
type Type?
The type to store, or null for an empty wrapper.
Exceptions
Thrown when type is not assignable to T.
Properties
BaseType
Gets the constraint the stored type must satisfy; Object when unconstrained.
public override Type BaseType { get; }