Class StickControl | Input System | 1.0.2
docs.unity.cn
    Show / Hide Table of Contents

    Class StickControl

    A two-axis thumbstick control that can act as both a vector and a four-way dpad.

    Inheritance
    Object
    InputControl
    InputControl<Vector2>
    Vector2Control
    StickControl
    Inherited Members
    Vector2Control.x
    Vector2Control.y
    Vector2Control.ReadUnprocessedValueFromState(Void*)
    Vector2Control.WriteValueIntoState(Vector2, Void*)
    Vector2Control.EvaluateMagnitude(Void*)
    InputControl<Vector2>.valueType
    InputControl<Vector2>.valueSizeInBytes
    InputControl<Vector2>.ReadValue()
    InputControl<Vector2>.ReadValueFromPreviousFrame()
    InputControl<Vector2>.ReadDefaultValue()
    InputControl<Vector2>.ReadValueFromState(Void*)
    InputControl<Vector2>.ReadUnprocessedValue()
    InputControl<Vector2>.ReadValueFromStateAsObject(Void*)
    InputControl<Vector2>.ReadValueFromStateIntoBuffer(Void*, Void*, Int32)
    InputControl<Vector2>.WriteValueFromBufferIntoState(Void*, Int32, Void*)
    InputControl<Vector2>.WriteValueFromObjectIntoState(Object, Void*)
    InputControl<Vector2>.ReadValueFromBufferAsObject(Void*, Int32)
    InputControl<Vector2>.CompareValue(Void*, Void*)
    InputControl<Vector2>.ProcessValue(Vector2)
    InputControl.name
    InputControl.displayName
    InputControl.shortDisplayName
    InputControl.path
    InputControl.layout
    InputControl.variants
    InputControl.device
    InputControl.parent
    InputControl.children
    InputControl.usages
    InputControl.aliases
    InputControl.stateBlock
    InputControl.noisy
    InputControl.synthetic
    InputControl.Item[String]
    InputControl.ToString()
    InputControl.EvaluateMagnitude()
    InputControl.TryGetChildControl(String)
    InputControl.TryGetChildControl<TControl>(String)
    InputControl.GetChildControl(String)
    InputControl.GetChildControl<TControl>(String)
    InputControl.RefreshConfigurationIfNeeded()
    InputControl.RefreshConfiguration()
    InputControl.m_StateBlock
    InputControl.currentStatePtr
    InputControl.previousFrameStatePtr
    InputControl.defaultStatePtr
    InputControl.noiseMaskPtr
    InputControl.stateOffsetRelativeToDeviceRoot
    Namespace: UnityEngine.InputSystem.Controls
    Syntax
    [Preserve]
    public class StickControl : Vector2Control
    Remarks

    Stick controls are used to represent the thumbsticks on gamepads (see leftStick and rightStick) as well as the main stick control of joysticks (see stick).

    Essentially, a stick is an extended Vector2 control that can function either as a combined 2D vector, as independent vertical and horizontal axes, or as four individual, directional buttons. The following example demonstrates this based on the gamepad's left stick.

    // Read stick as a combined 2D vector.
    Gamepad.current.leftStick.ReadValue();
    
    // Read X and Y axis of stick individually.
    Gamepad.current.leftStick.x.ReadValue();
    Gamepad.current.leftStick.y.ReadValue();
    
    // Read the stick as four individual directional buttons.
    Gamepad.current.leftStick.up.ReadValue();
    Gamepad.current.leftStick.down.ReadValue();
    Gamepad.current.leftStick.left.ReadValue();
    Gamepad.current.leftStick.right.ReadValue();

    In terms of memory, a stick controls is still just from one value for the X axis and one value for the Y axis.

    Unlike dpads (see DpadControl), sticks will usually have deadzone processors (see StickDeadzoneProcessor) applied to them to get rid of noise around the resting point of the stick. The X and Y axis also have deadzones applied to them by default (UnityEngine.InputSystem.Processors.AxisDeadzoneProcessor). Note, however, that the deadzoning of individual axes is different from the deadzoning applied to the stick as a whole and thus does not have to result in exactly the same values. Deadzoning of individual axes is linear (i.e. the result is simply clamped and normalized back into [0..1] range) whereas the deadzoning of sticks is radial (i.e. the length of the vector is taken into account which means that both the X and Y axis contribute).

    Properties

    down

    Declaration
    [Preserve]
    public ButtonControl down { get; }
    Property Value
    Type Description
    ButtonControl

    left

    Declaration
    [Preserve]
    public ButtonControl left { get; }
    Property Value
    Type Description
    ButtonControl

    right

    Declaration
    [Preserve]
    public ButtonControl right { get; }
    Property Value
    Type Description
    ButtonControl

    up

    A synthetic button representing the upper half of the stick's Y axis.

    Declaration
    [Preserve]
    public ButtonControl up { get; }
    Property Value
    Type Description
    ButtonControl

    Control representing the stick's upper half Y axis.

    Remarks

    The control is marked as synthetic.

    Methods

    FinishSetup()

    Declaration
    protected override void FinishSetup()
    Overrides
    Vector2Control.FinishSetup()

    Extension Methods

    InputControlExtensions.FindInParentChain<TControl>(InputControl)
    InputControlExtensions.IsPressed(InputControl, Single)
    InputControlExtensions.IsActuated(InputControl, Single)
    InputControlExtensions.ReadValueAsObject(InputControl)
    InputControlExtensions.ReadValueIntoBuffer(InputControl, Void*, Int32)
    InputControlExtensions.ReadDefaultValueAsObject(InputControl)
    InputControlExtensions.ReadValueFromEvent<TValue>(InputControl<TValue>, InputEventPtr)
    InputControlExtensions.ReadValueFromEvent<TValue>(InputControl<TValue>, InputEventPtr, out TValue)
    InputControlExtensions.ReadUnprocessedValueFromEvent<TValue>(InputControl<TValue>, InputEventPtr)
    InputControlExtensions.ReadUnprocessedValueFromEvent<TValue>(InputControl<TValue>, InputEventPtr, out TValue)
    InputControlExtensions.WriteValueFromObjectIntoEvent(InputControl, InputEventPtr, Object)
    InputControlExtensions.WriteValueIntoState(InputControl, Void*)
    InputControlExtensions.WriteValueIntoState<TValue>(InputControl, TValue, Void*)
    InputControlExtensions.WriteValueIntoState<TValue>(InputControl<TValue>, TValue, Void*)
    InputControlExtensions.WriteValueIntoState<TValue>(InputControl<TValue>, Void*)
    InputControlExtensions.WriteValueIntoState<TValue, TState>(InputControl<TValue>, TValue, ref TState)
    InputControlExtensions.WriteValueIntoEvent<TValue>(InputControl, TValue, InputEventPtr)
    InputControlExtensions.WriteValueIntoEvent<TValue>(InputControl<TValue>, TValue, InputEventPtr)
    InputControlExtensions.CheckStateIsAtDefault(InputControl)
    InputControlExtensions.CheckStateIsAtDefault(InputControl, Void*, Void*)
    InputControlExtensions.CheckStateIsAtDefaultIgnoringNoise(InputControl)
    InputControlExtensions.CheckStateIsAtDefaultIgnoringNoise(InputControl, Void*)
    InputControlExtensions.CompareStateIgnoringNoise(InputControl, Void*)
    InputControlExtensions.CompareState(InputControl, Void*, Void*, Void*)
    InputControlExtensions.CompareState(InputControl, Void*, Void*)
    InputControlExtensions.HasValueChangeInState(InputControl, Void*)
    InputControlExtensions.HasValueChangeInEvent(InputControl, InputEventPtr)
    InputControlExtensions.GetStatePtrFromStateEvent(InputControl, InputEventPtr)
    InputControlExtensions.QueueValueChange<TValue>(InputControl<TValue>, TValue, Double)
    InputControlExtensions.FindControlsRecursive<TControl>(InputControl, IList<TControl>, Func<TControl, Boolean>)
    Back to top Copyright © 2020 Unity Technologies
    Generated by DocFX
    on 22 January 2021