Перейти к основному содержимому

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​

ArgumentException

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

Property Value​

Type