Revision Difference
Input_System#562736
<cat>Code.Input</cat>
<title>Input System</title>
# Input
Input is handled using the `Input` class.
## Input Actions
You can configure Input Actions for your project in the Project Settings.
<upload src="1/8db41a83ec8a45f.png" size="98728" name="image.png" />
## Using Actions
The Input class has a number of methods to help you use your input actions.
| Method | Description |
|--------|-------------|
| Input.Pressed( "jump" ) | input was just pressed this frame |
| Input.Released( "jump" ) | input was just released this frame |
| Input.Down( "jump" ) | input was held down |
It is common to query for input within `OnUpdate` or `OnFixedUpdate`.
```csharp
protected override void OnUpdate()
{
if ( Input.Released( "jump" ) )
{
CharacterController.Punch( Vector3.Up * 256f );
CharacterController.IsOnGround = false;
}
}
```
## AnalogMove
`Input.AnalogMove` is generated automatically from controller input and any actions you have named "forward", "backward", "left" and "right".
This is a `Vector3` representing the move input.
You can safely use this for something like player movement input but you should sanity check it first. For example, you might want to normalize it.
## AnalogLook
`Input.AnalogLook` is generated automatically from controller and mouse input.
This represents the view angles. This could be used in something like a first person shooter to represent the eye angles or rotation of a player's object.
## MouseWheel
`Input.Mousewheel` is a Vector2 to represent the scroll wheel. This is a Vector2 because many mouses have horizontal and vertical scrolling.
## Input Glyphs
Input glyphs are an easy way for users to understand which buttons need to be pressed for actions to occur.
The following code is used to generate one:
`Texture JumpButton = Input.GetGlyph( "jump" );`
You can also choose if the glyph is outlined:
`Texture JumpButton = Input.GetGlyph( "jump", true );`
Input glyphs are automatically changed based on the player's input method, so it's worth generating them every frame.
<upload src="b5486/8dc8bba43cb2d18.png" size="136564" name="sbox-dev_Js6ahz6vYI.png" />
<upload src="b5486/8dc8bba43cb2d18.png" size="136564" name="sbox-dev_Js6ahz6vYI.png" />⤶
⤶
## Razor Example⤶
⤶
```html⤶
<Image Texture="@Input.GetGlyph("attack2", InputGlyphSize.Medium, true)" />⤶
```⤶
This will get a new texture each UI update, based on the user's "attack2" key.