docs.unity3d.com
Search Results for

    Show / Hide Table of Contents

    Class InputAxisControllerBase<T>

    This is a base class for a behaviour that is used to drive IInputAxisOwner behaviours, which it discovers dynamically. It is the bridge between the input system and Cinemachine cameras that require user input. Add it to a Cinemachine camera that needs it. If you want to read inputs from a third-party source, then you must specialize this class with an appropriate implementation of IInputAxisReader.

    Inheritance
    object
    Object
    Component
    Behaviour
    MonoBehaviour
    InputAxisControllerBase<T>
    CinemachineInputAxisController
    Implements
    IInputAxisController
    Inherited Members
    MonoBehaviour.IsInvoking()
    MonoBehaviour.CancelInvoke()
    MonoBehaviour.Invoke(string, float)
    MonoBehaviour.InvokeRepeating(string, float, float)
    MonoBehaviour.CancelInvoke(string)
    MonoBehaviour.IsInvoking(string)
    MonoBehaviour.StartCoroutine(string)
    MonoBehaviour.StartCoroutine(string, object)
    MonoBehaviour.StartCoroutine(IEnumerator)
    MonoBehaviour.StartCoroutine_Auto(IEnumerator)
    MonoBehaviour.StopCoroutine(IEnumerator)
    MonoBehaviour.StopCoroutine(Coroutine)
    MonoBehaviour.StopCoroutine(string)
    MonoBehaviour.StopAllCoroutines()
    MonoBehaviour.print(object)
    MonoBehaviour.destroyCancellationToken
    MonoBehaviour.useGUILayout
    MonoBehaviour.runInEditMode
    Behaviour.enabled
    Behaviour.isActiveAndEnabled
    Component.GetComponent(Type)
    Component.GetComponent<T>()
    Component.TryGetComponent(Type, out Component)
    Component.TryGetComponent<T>(out T)
    Component.GetComponent(string)
    Component.GetComponentInChildren(Type, bool)
    Component.GetComponentInChildren(Type)
    Component.GetComponentInChildren<T>(bool)
    Component.GetComponentInChildren<T>()
    Component.GetComponentsInChildren(Type, bool)
    Component.GetComponentsInChildren(Type)
    Component.GetComponentsInChildren<T>(bool)
    Component.GetComponentsInChildren<T>(bool, List<T>)
    Component.GetComponentsInChildren<T>()
    Component.GetComponentsInChildren<T>(List<T>)
    Component.GetComponentInParent(Type, bool)
    Component.GetComponentInParent(Type)
    Component.GetComponentInParent<T>(bool)
    Component.GetComponentInParent<T>()
    Component.GetComponentsInParent(Type, bool)
    Component.GetComponentsInParent(Type)
    Component.GetComponentsInParent<T>(bool)
    Component.GetComponentsInParent<T>(bool, List<T>)
    Component.GetComponentsInParent<T>()
    Component.GetComponents(Type)
    Component.GetComponents(Type, List<Component>)
    Component.GetComponents<T>(List<T>)
    Component.GetComponents<T>()
    Component.GetComponentIndex()
    Component.CompareTag(string)
    Component.SendMessageUpwards(string, object, SendMessageOptions)
    Component.SendMessageUpwards(string, object)
    Component.SendMessageUpwards(string)
    Component.SendMessageUpwards(string, SendMessageOptions)
    Component.SendMessage(string, object)
    Component.SendMessage(string)
    Component.SendMessage(string, object, SendMessageOptions)
    Component.SendMessage(string, SendMessageOptions)
    Component.BroadcastMessage(string, object, SendMessageOptions)
    Component.BroadcastMessage(string, object)
    Component.BroadcastMessage(string)
    Component.BroadcastMessage(string, SendMessageOptions)
    Component.transform
    Component.gameObject
    Component.tag
    Object.GetInstanceID()
    Object.GetHashCode()
    Object.Equals(object)
    Object.InstantiateAsync<T>(T)
    Object.InstantiateAsync<T>(T, Transform)
    Object.InstantiateAsync<T>(T, Vector3, Quaternion)
    Object.InstantiateAsync<T>(T, Transform, Vector3, Quaternion)
    Object.InstantiateAsync<T>(T, int)
    Object.InstantiateAsync<T>(T, int, Transform)
    Object.InstantiateAsync<T>(T, int, Vector3, Quaternion)
    Object.InstantiateAsync<T>(T, int, ReadOnlySpan<Vector3>, ReadOnlySpan<Quaternion>)
    Object.InstantiateAsync<T>(T, int, Transform, Vector3, Quaternion)
    Object.InstantiateAsync<T>(T, int, Transform, ReadOnlySpan<Vector3>, ReadOnlySpan<Quaternion>)
    Object.InstantiateAsync<T>(T, InstantiateParameters)
    Object.InstantiateAsync<T>(T, int, InstantiateParameters)
    Object.InstantiateAsync<T>(T, Vector3, Quaternion, InstantiateParameters)
    Object.InstantiateAsync<T>(T, int, Vector3, Quaternion, InstantiateParameters)
    Object.InstantiateAsync<T>(T, int, ReadOnlySpan<Vector3>, ReadOnlySpan<Quaternion>, InstantiateParameters)
    Object.Instantiate(Object, Vector3, Quaternion)
    Object.Instantiate(Object, Vector3, Quaternion, Transform)
    Object.Instantiate(Object)
    Object.Instantiate(Object, Scene)
    Object.Instantiate<T>(T, InstantiateParameters)
    Object.Instantiate<T>(T, Vector3, Quaternion, InstantiateParameters)
    Object.Instantiate(Object, Transform)
    Object.Instantiate(Object, Transform, bool)
    Object.Instantiate<T>(T)
    Object.Instantiate<T>(T, Vector3, Quaternion)
    Object.Instantiate<T>(T, Vector3, Quaternion, Transform)
    Object.Instantiate<T>(T, Transform)
    Object.Instantiate<T>(T, Transform, bool)
    Object.Destroy(Object, float)
    Object.Destroy(Object)
    Object.DestroyImmediate(Object, bool)
    Object.DestroyImmediate(Object)
    Object.FindObjectsOfType(Type)
    Object.FindObjectsOfType(Type, bool)
    Object.FindObjectsByType(Type, FindObjectsSortMode)
    Object.FindObjectsByType(Type, FindObjectsInactive, FindObjectsSortMode)
    Object.DontDestroyOnLoad(Object)
    Object.DestroyObject(Object, float)
    Object.DestroyObject(Object)
    Object.FindSceneObjectsOfType(Type)
    Object.FindObjectsOfTypeIncludingAssets(Type)
    Object.FindObjectsOfType<T>()
    Object.FindObjectsByType<T>(FindObjectsSortMode)
    Object.FindObjectsOfType<T>(bool)
    Object.FindObjectsByType<T>(FindObjectsInactive, FindObjectsSortMode)
    Object.FindObjectOfType<T>()
    Object.FindObjectOfType<T>(bool)
    Object.FindFirstObjectByType<T>()
    Object.FindAnyObjectByType<T>()
    Object.FindFirstObjectByType<T>(FindObjectsInactive)
    Object.FindAnyObjectByType<T>(FindObjectsInactive)
    Object.FindObjectsOfTypeAll(Type)
    Object.FindObjectOfType(Type)
    Object.FindFirstObjectByType(Type)
    Object.FindAnyObjectByType(Type)
    Object.FindObjectOfType(Type, bool)
    Object.FindFirstObjectByType(Type, FindObjectsInactive)
    Object.FindAnyObjectByType(Type, FindObjectsInactive)
    Object.ToString()
    Object.name
    Object.hideFlags
    object.Equals(object, object)
    object.GetType()
    object.MemberwiseClone()
    object.ReferenceEquals(object, object)
    Namespace: Unity.Cinemachine
    Assembly: Unity.Cinemachine.dll
    Syntax
    [ExecuteAlways]
    public abstract class InputAxisControllerBase<T> : MonoBehaviour, IInputAxisController where T : IInputAxisReader, new()
    Type Parameters
    Name Description
    T

    The axis reader that will read the inputs.

    Fields

    IgnoreTimeScale

    If set, then input will be processed using unscaled deltaTime, and not scaled deltaTime.
    This allows input to continue even when the timescale is set to 0.

    Declaration
    public bool IgnoreTimeScale
    Field Value
    Type Description
    bool

    ScanRecursively

    If set, a recursive search for IInputAxisOwners behaviours will be performed.
    Otherwise, only behaviours attached directly to this GameObject will be considered, and child objects will be ignored.

    Declaration
    [Tooltip("If set, a recursive search for IInputAxisOwners behaviours will be performed.  Otherwise, only behaviours attached directly to this GameObject will be considered, and child objects will be ignored")]
    public bool ScanRecursively
    Field Value
    Type Description
    bool

    SuppressInputWhileBlending

    If set, input will not be processed while the Cinemachine Camera is participating in a blend.

    Declaration
    [HideIfNoComponent(typeof(CinemachineVirtualCameraBase))]
    [Tooltip("If set, input will not be processed while the Cinemachine Camera is participating in a blend.")]
    public bool SuppressInputWhileBlending
    Field Value
    Type Description
    bool

    Properties

    Controllers

    This list is dynamically populated based on the discovered axes

    Declaration
    public List<InputAxisControllerBase<T>.Controller> Controllers { get; }
    Property Value
    Type Description
    List<InputAxisControllerBase<T>.Controller>

    Methods

    ControllersAreValid()

    Available in Editor only. Used to check if a controller synchronization is necessary. Normally we should have one controller per IInputAxisOwner axis.

    Declaration
    public bool ControllersAreValid()
    Returns
    Type Description
    bool

    True if there is one controller defined per IInputAxisOwner axis, false if there is a mismatch

    InitializeControllerDefaultsForAxis(in AxisDescriptor, Controller)

    Creates default controllers for an axis. Override this if the default axis controllers do not fit your axes.

    Declaration
    protected virtual void InitializeControllerDefaultsForAxis(in IInputAxisOwner.AxisDescriptor axis, InputAxisControllerBase<T>.Controller controller)
    Parameters
    Type Name Description
    IInputAxisOwner.AxisDescriptor axis

    Description of the axis whose default controller needs to be set.

    InputAxisControllerBase<T>.Controller controller

    Controller to drive the axis.

    OnDisable()

    Called by Unity when the inspector component is disabled

    Declaration
    protected virtual void OnDisable()

    OnEnable()

    Called by Unity when the inspector component is enabled

    Declaration
    protected virtual void OnEnable()

    OnValidate()

    Editor only: Called by Unity when the component is serialized or the inspector is changed.

    Declaration
    protected virtual void OnValidate()

    Reset()

    Called by Unity when the component is reset.

    Declaration
    protected virtual void Reset()

    SynchronizeControllers()

    Normally we should have one controller per IInputAxisOwner axis.
    This will create missing controllers (in their default state) and remove any that are no longer relevant. This is costly - do not call it every frame.

    Declaration
    public void SynchronizeControllers()

    UpdateControllers()

    Read all the controllers and process their input. Default implementation calls UpdateControllers(IgnoreTimeScale ? Time.unscaledDeltaTime : Time.deltaTime)

    Declaration
    protected void UpdateControllers()

    UpdateControllers(float)

    Read all the controllers and process their input.

    Declaration
    protected void UpdateControllers(float deltaTime)
    Parameters
    Type Name Description
    float deltaTime

    The time interval for which to process the input

    Implements

    IInputAxisController
    In This Article
    Back to top
    Copyright © 2025 Unity Technologies — Trademarks and terms of use
    • Legal
    • Privacy Policy
    • Cookie Policy
    • Do Not Sell or Share My Personal Information
    • Your Privacy Choices (Cookie Settings)