Struct ComponentTypeSelector
Namespace: Aspid.FastTools.Types
Assembly: Aspid.FastTools.dll
Represents a marker field adding an Inspector dropdown that swaps the object's script to any subtype of the field's declaring class.
[Serializable]
public struct ComponentTypeSelector
Extension Methods
TextInputBaseFieldTextSelectionExtensions.AddOnCursorIndexChange<ComponentTypeSelector, TValue>(ComponentTypeSelector, Action), TextInputBaseFieldTextSelectionExtensions.AddOnSelectIndexChange<ComponentTypeSelector, TValue>(ComponentTypeSelector, Action), INotifyValueChangedExtensions.AddValueChanged<ComponentTypeSelector, TValue>(ComponentTypeSelector, EventCallback<ChangeEvent<TValue>>), ProfilerMarkerExtensionsForGenerator.Marker<ComponentTypeSelector>(ComponentTypeSelector), TextInputBaseFieldTextSelectionExtensions.RemoveOnCursorIndexChange<ComponentTypeSelector, TValue>(ComponentTypeSelector, Action), TextInputBaseFieldTextSelectionExtensions.RemoveOnSelectIndexChange<ComponentTypeSelector, TValue>(ComponentTypeSelector, Action), INotifyValueChangedExtensions.RemoveValueChanged<ComponentTypeSelector, TValue>(ComponentTypeSelector, EventCallback<ChangeEvent<TValue>>), TextInputBaseFieldExtensions.SetAutoCorrection<ComponentTypeSelector, TValue>(ComponentTypeSelector, bool), TextInputBaseFieldTextSelectionExtensions.SetCursorIndex<ComponentTypeSelector, TValue>(ComponentTypeSelector, int), TextInputBaseFieldExtensions.SetDelayed<ComponentTypeSelector, TValue>(ComponentTypeSelector, bool), TextInputBaseFieldTextSelectionExtensions.SetDoubleClickSelectsWord<ComponentTypeSelector, TValue>(ComponentTypeSelector, bool), TextInputBaseFieldExtensions.SetHideMobileInput<ComponentTypeSelector, TValue>(ComponentTypeSelector, bool), TextInputBaseFieldExtensions.SetHidePlaceholderOnFocus<ComponentTypeSelector, TValue>(ComponentTypeSelector, bool), TextInputBaseFieldExtensions.SetHideSoftKeyboard<ComponentTypeSelector, TValue>(ComponentTypeSelector, bool), SliderExtensions.SetHighValue<ComponentTypeSelector, TValue>(ComponentTypeSelector, TValue), TextInputBaseFieldExtensions.SetKeyboardType<ComponentTypeSelector, TValue>(ComponentTypeSelector, TouchScreenKeyboardType), BaseFieldExtensions.SetLabel<ComponentTypeSelector, TValue>(ComponentTypeSelector, string), SliderExtensions.SetLowValue<ComponentTypeSelector, TValue>(ComponentTypeSelector, TValue), TextInputBaseFieldExtensions.SetMaskChar<ComponentTypeSelector, TValue>(ComponentTypeSelector, char), TextInputBaseFieldExtensions.SetMaxLength<ComponentTypeSelector, TValue>(ComponentTypeSelector, int), TextInputBaseFieldExtensions.SetPassword<ComponentTypeSelector, TValue>(ComponentTypeSelector, bool), TextInputBaseFieldExtensions.SetPlaceholder<ComponentTypeSelector, TValue>(ComponentTypeSelector, string), TextInputBaseFieldExtensions.SetReadOnly<ComponentTypeSelector, TValue>(ComponentTypeSelector, bool), TextInputBaseFieldTextSelectionExtensions.SetSelectAllOnFocus<ComponentTypeSelector, TValue>(ComponentTypeSelector, bool), TextInputBaseFieldTextSelectionExtensions.SetSelectAllOnMouseUp<ComponentTypeSelector, TValue>(ComponentTypeSelector, bool), TextInputBaseFieldTextSelectionExtensions.SetSelectIndex<ComponentTypeSelector, TValue>(ComponentTypeSelector, int), TextInputBaseFieldTextSelectionExtensions.SetSelectable<ComponentTypeSelector, TValue>(ComponentTypeSelector, bool), TextInputBaseFieldTextSelectionExtensions.SetTripleClickSelectsLine<ComponentTypeSelector, TValue>(ComponentTypeSelector, bool), INotifyValueChangedExtensions.SetValue<ComponentTypeSelector, TValue>(ComponentTypeSelector, TValue, bool)
Examples
Place a field of this type in the root class; the Inspector lists all subtypes of BaseEnemy:
public abstract class BaseEnemy : MonoBehaviour
{
[SerializeField] private ComponentTypeSelector _typeSelector;
}
public class FastEnemy : BaseEnemy { }
public class TankEnemy : BaseEnemy { }
Remarks
Picking a type writes the matching MonoScript asset to m_Script, turning the object into that
subtype. The picker is constrained to the declaring class automatically.