docs.unity3d.com
Search Results for

    Show / Hide Table of Contents

    Class KeyControl

    A key on a Keyboard.

    Inheritance
    object
    InputControl
    InputControl<float>
    AxisControl
    ButtonControl
    KeyControl
    Inherited Members
    ButtonControl.pressPoint
    ButtonControl.pressPointOrDefault
    ButtonControl.IsValueConsideredPressed(float)
    ButtonControl.isPressed
    ButtonControl.wasPressedThisFrame
    ButtonControl.wasReleasedThisFrame
    AxisControl.clamp
    AxisControl.clampMin
    AxisControl.clampMax
    AxisControl.clampConstant
    AxisControl.invert
    AxisControl.normalize
    AxisControl.normalizeMin
    AxisControl.normalizeMax
    AxisControl.normalizeZero
    AxisControl.scale
    AxisControl.scaleFactor
    AxisControl.Preprocess(float)
    AxisControl.FinishSetup()
    AxisControl.ReadUnprocessedValueFromState(void*)
    AxisControl.WriteValueIntoState(float, void*)
    AxisControl.CompareValue(void*, void*)
    AxisControl.EvaluateMagnitude(void*)
    AxisControl.CalculateOptimizedControlDataType()
    InputControl<float>.valueType
    InputControl<float>.valueSizeInBytes
    InputControl<float>.value
    InputControl<float>.ReadValue()
    InputControl<float>.ReadValueFromPreviousFrame()
    InputControl<float>.ReadDefaultValue()
    InputControl<float>.ReadValueFromState(void*)
    InputControl<float>.ReadValueFromStateWithCaching(void*)
    InputControl<float>.ReadUnprocessedValueFromStateWithCaching(void*)
    InputControl<float>.ReadUnprocessedValue()
    InputControl<float>.ReadValueFromStateAsObject(void*)
    InputControl<float>.ReadValueFromStateIntoBuffer(void*, void*, int)
    InputControl<float>.WriteValueFromBufferIntoState(void*, int, void*)
    InputControl<float>.WriteValueFromObjectIntoState(object, void*)
    InputControl<float>.ReadValueFromBufferAsObject(void*, int)
    InputControl<float>.ProcessValue(float)
    InputControl<float>.ProcessValue(ref float)
    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.this[string]
    InputControl.magnitude
    InputControl.ToString()
    InputControl.EvaluateMagnitude()
    InputControl.TryGetChildControl(string)
    InputControl.TryGetChildControl<TControl>(string)
    InputControl.GetChildControl(string)
    InputControl.GetChildControl<TControl>(string)
    InputControl.RefreshConfigurationIfNeeded()
    InputControl.m_StateBlock
    InputControl.currentStatePtr
    InputControl.previousFrameStatePtr
    InputControl.defaultStatePtr
    InputControl.noiseMaskPtr
    InputControl.stateOffsetRelativeToDeviceRoot
    InputControl.optimizedControlDataType
    InputControl.ApplyParameterChanges()
    Namespace: UnityEngine.InputSystem.Controls
    Assembly: Unity.InputSystem.dll
    Syntax
    public class KeyControl : ButtonControl
    Remarks

    This is an extended button control which adds various features to account for the fact that keys have symbols associated with them which may change depending on keyboard layout as well as in combination with other keys.

    Note: Unity input system key codes and input manager key codes are designed with game controls in mind.

    This means the way they are assigned is intended to preserve the location of keys on keyboards, so that pressing a key in the same location on different keyboards should result in the same action regardless of what is printed on a key or what current system language is set.

    This means, for example, that A is always the key to the right of CapsLock, regardless of which key (if any) produces the "a" character on the current keyboard layout.

    Unity relies on physical hardware in the keyboards to report same USB HID "usage" for the keys in the same location.This puts a practical limit on what can be achieved, because different keyboards might report different data, and this is outside of Unity's control.

    For this reason, you should not use key codes to read text input. Instead, you should use the onTextInput callback. The onTextInput callback provides you with the actual text characters which correspond to the symbols printed on a keyboard, based on the end user's current system language layout.

    To find the text character (if any) generated by a key according to the currently active keyboard layout, use the displayName property of KeyControl.

    Properties

    keyCode

    The code used in Unity to identify the key.

    Declaration
    public Key keyCode { get; set; }
    Property Value
    Type Description
    Key
    Remarks

    This property must be initialized by FinishSetup() of the device owning the control. You should not use keyCode to read text input. For more information, KeyControl

    scanCode

    The code that the underlying platform uses to identify the key.

    Declaration
    public int scanCode { get; }
    Property Value
    Type Description
    int

    Methods

    RefreshConfiguration()

    Declaration
    protected override void RefreshConfiguration()
    Overrides
    InputControl.RefreshConfiguration()

    Extension Methods

    InputControlExtensions.CheckStateIsAtDefault(InputControl)
    InputControlExtensions.CheckStateIsAtDefault(InputControl, void*, void*)
    InputControlExtensions.CheckStateIsAtDefaultIgnoringNoise(InputControl)
    InputControlExtensions.CheckStateIsAtDefaultIgnoringNoise(InputControl, void*)
    InputControlExtensions.CompareState(InputControl, void*, void*)
    InputControlExtensions.CompareState(InputControl, void*, void*, void*)
    InputControlExtensions.CompareStateIgnoringNoise(InputControl, void*)
    InputControlExtensions.FindControlsRecursive<TControl>(InputControl, IList<TControl>, Func<TControl, bool>)
    InputControlExtensions.FindInParentChain<TControl>(InputControl)
    InputControlExtensions.GetStatePtrFromStateEvent(InputControl, InputEventPtr)
    InputControlExtensions.HasValueChangeInEvent(InputControl, InputEventPtr)
    InputControlExtensions.HasValueChangeInState(InputControl, void*)
    InputControlExtensions.IsActuated(InputControl, float)
    InputControlExtensions.IsPressed(InputControl, float)
    InputControlExtensions.ReadDefaultValueAsObject(InputControl)
    InputControlExtensions.ReadValueAsObject(InputControl)
    InputControlExtensions.ReadValueFromEventAsObject(InputControl, InputEventPtr)
    InputControlExtensions.ReadValueIntoBuffer(InputControl, void*, int)
    InputControlExtensions.ResetToDefaultStateInEvent(InputControl, InputEventPtr)
    InputControlExtensions.WriteValueFromObjectIntoEvent(InputControl, InputEventPtr, object)
    InputControlExtensions.WriteValueIntoEvent<TValue>(InputControl, TValue, InputEventPtr)
    InputControlExtensions.WriteValueIntoState(InputControl, void*)
    InputControlExtensions.WriteValueIntoState<TValue>(InputControl, TValue, void*)
    InputControlExtensions.AccumulateValueInEvent(InputControl<float>, void*, InputEventPtr)
    InputControlExtensions.QueueValueChange<TValue>(InputControl<TValue>, TValue, double)
    InputControlExtensions.ReadUnprocessedValueFromEvent<TValue>(InputControl<TValue>, InputEventPtr)
    InputControlExtensions.ReadUnprocessedValueFromEvent<TValue>(InputControl<TValue>, InputEventPtr, out TValue)
    InputControlExtensions.ReadValueFromEvent<TValue>(InputControl<TValue>, InputEventPtr)
    InputControlExtensions.ReadValueFromEvent<TValue>(InputControl<TValue>, InputEventPtr, out TValue)
    InputControlExtensions.WriteValueIntoEvent<TValue>(InputControl<TValue>, TValue, InputEventPtr)
    InputControlExtensions.WriteValueIntoState<TValue>(InputControl<TValue>, TValue, void*)
    InputControlExtensions.WriteValueIntoState<TValue>(InputControl<TValue>, void*)
    InputControlExtensions.WriteValueIntoState<TValue, TState>(InputControl<TValue>, TValue, ref TState)
    In This Article
    Back to top
    Copyright © 2024 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)