Class Input
The user input handling service.
Inheritance
Namespace: FlaxEngine
Assembly: FlaxEngine.CSharp.dll
Syntax
[Unmanaged]
public static class Input : ObjectProperties
ActionMappings
Maps a discrete button or key press events to a "friendly name" that will later be bound to event-driven behavior. The end effect is that pressing (and/or releasing) a key, mouse button, or keypad button.
Declaration
[Unmanaged]
public static ActionConfig[] ActionMappings { get; set; }Property Value
| ActionConfig[] 
 | 
AxisMappings
Maps keyboard, controller, or mouse inputs to a "friendly name" that will later be bound to continuous game behavior, such as movement. The inputs mapped in AxisMappings are continuously polled, even if they are just reporting that their input value.
Declaration
[Unmanaged]
public static AxisConfig[] AxisMappings { get; set; }Property Value
| AxisConfig[] 
 | 
Gamepads
Gets the gamepads.
Declaration
[Unmanaged]
public static Gamepad[] Gamepads { get; }Property Value
| Gamepad[] 
 | 
GamepadsCount
Gets the gamepads count.
Declaration
[Unmanaged]
public static int GamepadsCount { get; }Property Value
| System.Int32 
 | 
InputText
Gets the text entered during the current frame (Unicode).
Declaration
[Unmanaged]
public static string InputText { get; }Property Value
| System.String 
 | 
Keyboard
Gets the keyboard (null if platform does not support keyboard or it is not connected).
Declaration
[Unmanaged]
public static Keyboard Keyboard { get; }Property Value
| Keyboard 
 | 
Mouse
Gets the mouse (null if platform does not support mouse or it is not connected).
Declaration
[Unmanaged]
public static Mouse Mouse { get; }Property Value
| Mouse 
 | 
MousePosition
Gets or sets the mouse position in game window coordinates.
Declaration
[Unmanaged]
public static Float2 MousePosition { get; set; }Property Value
| Float2 
 | 
MousePositionDelta
Gets the mouse position change during the last frame.
Declaration
[Unmanaged]
public static Float2 MousePositionDelta { get; }Property Value
| Float2 
 | 
MouseScreenPosition
Gets or sets the mouse position in screen-space coordinates.
Declaration
[Unmanaged]
public static Float2 MouseScreenPosition { get; set; }Property Value
| Float2 
 | 
MouseScrollDelta
Gets the mouse wheel change during the last frame.
Declaration
[Unmanaged]
public static float MouseScrollDelta { get; }Property Value
| System.Single 
 | 
Methods
GetAction(String)
Gets the value of the virtual action identified by name. Use ActionMappings to get the current config.
Declaration
[Unmanaged]
public static bool GetAction(string name)Parameters
| System.String
        name The action name. | 
Returns
| System.Boolean True if action has been triggered in the current frame (e.g. button pressed), otherwise false. | 
See Also
GetActionConfigByName(String)
Gets the first action configuration by name.
Declaration
[Unmanaged]
public static ActionConfig GetActionConfigByName(string name)Parameters
| System.String
        name The name of the action config. | 
Returns
| ActionConfig The first Action configuration with the name. Empty configuration if not found. | 
GetActionState(String)
Gets the value of the virtual action identified by name. Use ActionMappings to get the current config.
Declaration
[Unmanaged]
public static InputActionState GetActionState(string name)Parameters
| System.String
        name The action name. | 
Returns
| InputActionState A InputActionPhase determining the current phase of the Action (e.g If it was just pressed, is being held or just released). | 
See Also
GetAllActionConfigsByName(String)
Gets all the action configurations by name.
Declaration
[Unmanaged]
public static ActionConfig[] GetAllActionConfigsByName(string name)Parameters
| System.String
        name The name of the action config. | 
Returns
| ActionConfig[] The Action configurations with the name. | 
GetAllAxisConfigsByName(String)
Gets all the axis configurations by name.
Declaration
[Unmanaged]
public static AxisConfig[] GetAllAxisConfigsByName(string name)Parameters
| System.String
        name The name of the axis config. | 
Returns
| AxisConfig[] The axis configurations with the name. | 
GetAxis(String)
Gets the value of the virtual axis identified by name. Use AxisMappings to get the current config.
Declaration
[Unmanaged]
public static float GetAxis(string name)Parameters
| System.String
        name The action name. | 
Returns
| System.Single The current axis value (e.g for gamepads it's in the range -1..1). Value is smoothed to reduce artifacts. | 
See Also
GetAxisConfigByName(String)
Gets the first axis configurations by name.
Declaration
[Unmanaged]
public static AxisConfig GetAxisConfigByName(string name)Parameters
| System.String
        name The name of the axis config. | 
Returns
| AxisConfig The first Axis configuration with the name. Empty configuration if not found. | 
GetAxisRaw(String)
Gets the raw value of the virtual axis identified by name with no smoothing filtering applied. Use AxisMappings to get the current config.
Declaration
[Unmanaged]
public static float GetAxisRaw(string name)Parameters
| System.String
        name The action name. | 
Returns
| System.Single The current axis value (e.g for gamepads it's in the range -1..1). No smoothing applied. | 
See Also
GetGamepad(Int32)
Gets the gamepads count.
Declaration
[Unmanaged]
public static Gamepad GetGamepad(int index)Parameters
| System.Int32
        index The gamepad index. | 
Returns
| Gamepad The gamepad device or null if index is invalid. | 
GetGamepadAxis(InputGamepadIndex, GamepadAxis)
Gets the gamepad axis value.
Declaration
[Unmanaged]
public static float GetGamepadAxis(InputGamepadIndex gamepad, GamepadAxis axis)Parameters
| InputGamepadIndex
        gamepad The gamepad | 
| GamepadAxis
        axis Gamepad axis to check | 
Returns
| System.Single Axis value. | 
GetGamepadAxis(Int32, GamepadAxis)
Gets the gamepad axis value.
Declaration
[Unmanaged]
public static float GetGamepadAxis(int gamepadIndex, GamepadAxis axis)Parameters
| System.Int32
        gamepadIndex The gamepad index | 
| GamepadAxis
        axis Gamepad axis to check | 
Returns
| System.Single Axis value. | 
GetGamepadButton(InputGamepadIndex, GamepadButton)
Gets the gamepad button state (true if being pressed during the current frame).
Declaration
[Unmanaged]
public static bool GetGamepadButton(InputGamepadIndex gamepad, GamepadButton button)Parameters
| InputGamepadIndex
        gamepad The gamepad | 
| GamepadButton
        button Gamepad button to check | 
Returns
| System.Boolean True if user holds down the button, otherwise false. | 
GetGamepadButton(Int32, GamepadButton)
Gets the gamepad button state (true if being pressed during the current frame).
Declaration
[Unmanaged]
public static bool GetGamepadButton(int gamepadIndex, GamepadButton button)Parameters
| System.Int32
        gamepadIndex The gamepad index | 
| GamepadButton
        button Gamepad button to check | 
Returns
| System.Boolean True if user holds down the button, otherwise false. | 
GetGamepadButtonDown(InputGamepadIndex, GamepadButton)
Gets the gamepad button down state (true if was pressed during the current frame).
Declaration
[Unmanaged]
public static bool GetGamepadButtonDown(InputGamepadIndex gamepad, GamepadButton button)Parameters
| InputGamepadIndex
        gamepad The gamepad | 
| GamepadButton
        button Gamepad button to check | 
Returns
| System.Boolean True if user starts pressing down the button, otherwise false. | 
GetGamepadButtonDown(Int32, GamepadButton)
Gets the gamepad button down state (true if was pressed during the current frame).
Declaration
[Unmanaged]
public static bool GetGamepadButtonDown(int gamepadIndex, GamepadButton button)Parameters
| System.Int32
        gamepadIndex The gamepad index | 
| GamepadButton
        button Gamepad button to check | 
Returns
| System.Boolean True if user starts pressing down the button, otherwise false. | 
GetGamepadButtonUp(InputGamepadIndex, GamepadButton)
Gets the gamepad button up state (true if was released during the current frame).
Declaration
[Unmanaged]
public static bool GetGamepadButtonUp(InputGamepadIndex gamepad, GamepadButton button)Parameters
| InputGamepadIndex
        gamepad The gamepad | 
| GamepadButton
        button Gamepad button to check | 
Returns
| System.Boolean True if user releases the button, otherwise false. | 
GetGamepadButtonUp(Int32, GamepadButton)
Gets the gamepad button up state (true if was released during the current frame).
Declaration
[Unmanaged]
public static bool GetGamepadButtonUp(int gamepadIndex, GamepadButton button)Parameters
| System.Int32
        gamepadIndex The gamepad index | 
| GamepadButton
        button Gamepad button to check | 
Returns
| System.Boolean True if user releases the button, otherwise false. | 
GetKey(KeyboardKeys)
Gets the key state (true if key is being pressed during this frame).
Declaration
[Unmanaged]
public static bool GetKey(KeyboardKeys key)Parameters
| KeyboardKeys
        key Key ID to check | 
Returns
| System.Boolean True while the user holds down the key identified by id | 
GetKeyDown(KeyboardKeys)
Gets the key 'down' state (true if key was pressed in this frame).
Declaration
[Unmanaged]
public static bool GetKeyDown(KeyboardKeys key)Parameters
| KeyboardKeys
        key Key ID to check | 
Returns
| System.Boolean True during the frame the user starts pressing down the key | 
GetKeyUp(KeyboardKeys)
Gets the key 'up' state (true if key was released in this frame).
Declaration
[Unmanaged]
public static bool GetKeyUp(KeyboardKeys key)Parameters
| KeyboardKeys
        key Key ID to check | 
Returns
| System.Boolean True during the frame the user releases the key | 
GetMouseButton(MouseButton)
Gets the mouse button state.
Declaration
[Unmanaged]
public static bool GetMouseButton(MouseButton button)Parameters
| MouseButton
        button Mouse button to check | 
Returns
| System.Boolean True while the user holds down the button | 
GetMouseButtonDown(MouseButton)
Gets the mouse button down state.
Declaration
[Unmanaged]
public static bool GetMouseButtonDown(MouseButton button)Parameters
| MouseButton
        button Mouse button to check | 
Returns
| System.Boolean True during the frame the user starts pressing down the button | 
GetMouseButtonUp(MouseButton)
Gets the mouse button up state.
Declaration
[Unmanaged]
public static bool GetMouseButtonUp(MouseButton button)Parameters
| MouseButton
        button Mouse button to check | 
Returns
| System.Boolean True during the frame the user releases the button | 
SetActionConfigByName(String, ActionConfig, Boolean)
Sets the action configuration by name.
Declaration
[Unmanaged]
public static void SetActionConfigByName(string name, ActionConfig config, bool all = false)Parameters
| System.String
        name The name of the action config. | 
| ActionConfig
        config The action configuration to set. Leave the config name empty to use set name. | 
| System.Boolean
        all Whether to set only the first config found or all of them. | 
SetActionConfigByName(String, GamepadButton, InputGamepadIndex, Boolean)
Sets the action configuration gamepad button by name and index.
Declaration
[Unmanaged]
public static void SetActionConfigByName(string name, GamepadButton gamepadButton, InputGamepadIndex gamepadIndex, bool all = false)Parameters
| System.String
        name The name of the action config. | 
| GamepadButton
        gamepadButton The gamepad button to set. | 
| InputGamepadIndex
        gamepadIndex The gamepad index used to find the correct config. | 
| System.Boolean
        all Whether to set only the first config found or all of them. | 
SetActionConfigByName(String, KeyboardKeys, Boolean)
Sets the action configuration keyboard key by name.
Declaration
[Unmanaged]
public static void SetActionConfigByName(string name, KeyboardKeys key, bool all = false)Parameters
| System.String
        name The name of the action config. | 
| KeyboardKeys
        key The key to set. | 
| System.Boolean
        all Whether to set only the first config found or all of them. | 
SetActionConfigByName(String, MouseButton, Boolean)
Sets the action configuration mouse button by name.
Declaration
[Unmanaged]
public static void SetActionConfigByName(string name, MouseButton mouseButton, bool all = false)Parameters
| System.String
        name The name of the action config. | 
| MouseButton
        mouseButton The mouse button to set. | 
| System.Boolean
        all Whether to set only the first config found or all of them. | 
SetAxisConfigByName(String, AxisConfig, Boolean)
Sets the axis configuration keyboard key by name and type.
Declaration
[Unmanaged]
public static void SetAxisConfigByName(string name, AxisConfig config, bool all = false)Parameters
| System.String
        name The name of the action config. | 
| AxisConfig
        config The configuration to set. Leave the config name empty to use set name. | 
| System.Boolean
        all Whether to set only the first config found or all of them. | 
SetAxisConfigByName(String, InputAxisType, GamepadButton, GamepadButton, InputGamepadIndex, Boolean)
Sets the axis configuration gamepad buttons by name, type, and index.
Declaration
[Unmanaged]
public static void SetAxisConfigByName(string name, InputAxisType inputType, GamepadButton positiveButton, GamepadButton negativeButton, InputGamepadIndex gamepadIndex, bool all = false)Parameters
| System.String
        name The name of the action config. | 
| InputAxisType
        inputType The type to sort by. | 
| GamepadButton
        positiveButton The positive gamepad button. | 
| GamepadButton
        negativeButton The negative gamepad button. | 
| InputGamepadIndex
        gamepadIndex The gamepad index to sort by. | 
| System.Boolean
        all Whether to set only the first config found or all of them. | 
SetAxisConfigByName(String, InputAxisType, KeyboardKeys, KeyboardKeys, Boolean)
Sets the axis configuration keyboard key buttons by name and type.
Declaration
[Unmanaged]
public static void SetAxisConfigByName(string name, InputAxisType inputType, KeyboardKeys positiveButton, KeyboardKeys negativeButton, bool all = false)Parameters
| System.String
        name The name of the action config. | 
| InputAxisType
        inputType The type to sort by. | 
| KeyboardKeys
        positiveButton The positive key button. | 
| KeyboardKeys
        negativeButton The negative key button. | 
| System.Boolean
        all Whether to set only the first config found or all of them. | 
SetAxisConfigByName(String, InputAxisType, Single, Single, Single, Single, Boolean, Boolean)
Sets the axis configuration accessories by name, and type.
Declaration
[Unmanaged]
public static void SetAxisConfigByName(string name, InputAxisType inputType, float gravity, float deadZone, float sensitivity, float scale, bool snap, bool all = false)Parameters
| System.String
        name The name of the action config. | 
| InputAxisType
        inputType The type to sort by. | 
| System.Single
        gravity The gravity to set. | 
| System.Single
        deadZone The dead zone to set. | 
| System.Single
        sensitivity The sensitivity to set. | 
| System.Single
        scale The scale to set. | 
| System.Boolean
        snap The snap to set. | 
| System.Boolean
        all Whether to set only the first config found or all of them. | 
SetInputMappingFromSettings(JsonAssetReference<InputSettings>)
Sets and overwrites the Action and Axis mappings with the values from a new InputSettings.
Declaration
[Unmanaged]
public static void SetInputMappingFromSettings(JsonAssetReference<InputSettings> settings)Parameters
| JsonAssetReference<InputSettings>
        settings The input settings. | 
SetInputMappingToDefaultSettings()
Sets and overwrites the Action and Axis mappings with the values from the InputSettings in GameSettings.
Declaration
[Unmanaged]
public static void SetInputMappingToDefaultSettings()Events
ActionTriggered
Event fired when virtual input action is triggered. Called before scripts update. See ActionMappings to edit configuration.
Declaration
[Unmanaged]
public static event Action<string, InputActionState> ActionTriggeredEvent Type
| System.Action<System.String, InputActionState> 
 | 
See Also
AxisValueChanged
Event fired when virtual input axis is changed. Called before scripts update. See AxisMappings to edit configuration.
Declaration
[Unmanaged]
public static event Action<string> AxisValueChangedEvent Type
| System.Action<System.String> 
 | 
See Also
CharInput
Event fired on character input.
Declaration
[Unmanaged]
public static event Action<char> CharInputEvent Type
| System.Action<System.Char> 
 | 
GamepadsChanged
Action called when gamepads collection gets changed (during input update).
Declaration
[Unmanaged]
public static event Action GamepadsChangedEvent Type
| System.Action 
 | 
KeyDown
Event fired on key pressed.
Declaration
[Unmanaged]
public static event Action<KeyboardKeys> KeyDownEvent Type
| System.Action<KeyboardKeys> 
 | 
KeyUp
Event fired on key released.
Declaration
[Unmanaged]
public static event Action<KeyboardKeys> KeyUpEvent Type
| System.Action<KeyboardKeys> 
 | 
MouseDoubleClick
Event fired when mouse button double clicks.
Declaration
[Unmanaged]
public static event Action<Float2, MouseButton> MouseDoubleClickEvent Type
| System.Action<Float2, MouseButton> 
 | 
MouseDown
Event fired when mouse button goes down.
Declaration
[Unmanaged]
public static event Action<Float2, MouseButton> MouseDownEvent Type
| System.Action<Float2, MouseButton> 
 | 
MouseLeave
Event fired when mouse leaves window.
Declaration
[Unmanaged]
public static event Action MouseLeaveEvent Type
| System.Action 
 | 
MouseMove
Event fired when mouse moves.
Declaration
[Unmanaged]
public static event Action<Float2> MouseMoveEvent Type
| System.Action<Float2> 
 | 
MouseUp
Event fired when mouse button goes up.
Declaration
[Unmanaged]
public static event Action<Float2, MouseButton> MouseUpEvent Type
| System.Action<Float2, MouseButton> 
 | 
MouseWheel
Event fired when mouse wheel is scrolling (wheel delta is normalized).
Declaration
[Unmanaged]
public static event Action<Float2, float> MouseWheelEvent Type
| System.Action<Float2, System.Single> 
 | 
TouchDown
Event fired when touch action begins.
Declaration
[Unmanaged]
public static event Action<Float2, int> TouchDownEvent Type
| System.Action<Float2, System.Int32> 
 | 
TouchMove
Event fired when touch action moves.
Declaration
[Unmanaged]
public static event Action<Float2, int> TouchMoveEvent Type
| System.Action<Float2, System.Int32> 
 | 
TouchUp
Event fired when touch action ends.
Declaration
[Unmanaged]
public static event Action<Float2, int> TouchUpEvent Type
| System.Action<Float2, System.Int32> 
 |