Summary
Unity has two main input workflows. The legacy Input Manager uses direct calls such as Input.GetAxisRaw("Horizontal") and Input.GetKeyDown(KeyCode.Space). The newer Input System package uses input actions, action maps and generated or event-based bindings. The course uses the legacy workflow first because it keeps the relationship between key press, value and movement visible. The Input System is the stronger long-term tool for larger projects. (course lab series, see source-csharp-unity-labs; Unity, Input System, see source-unity-input-system)
Comparison table
| Dimension | Legacy Input Manager | New Input System |
|---|---|---|
| Typical code | Input.GetAxisRaw("Horizontal") | Read an InputAction value |
| Setup | Built into project settings | Package and input action asset |
| Beginner readability | High | Medium |
| Rebinding | Limited | Strong |
| Multi-device support | Basic | Strong |
| Local multiplayer | Awkward | Designed for it |
| Best use | First scripts, small prototypes, teaching input values | Production projects, controller support, configurable controls |
When to choose the legacy Input Manager
Choose the legacy Input Manager when:
- students are learning what input values are
- the game is a small prototype
- keyboard movement and simple buttons are enough
- the priority is reading and tracing short code
This is the best starting point for explaining why input belongs in Update and why GetKeyDown is different from GetKey.
When to choose the Input System
Choose the Input System when:
- the project needs rebinding
- controller, keyboard and mouse support must be consistent
- local multiplayer matters
- actions should be separated from devices
- the team can tolerate more setup complexity
The Input System is more scalable, but it hides more machinery behind assets and generated wrappers. That is useful after students already understand the simpler input model.
Related
unity-input · unity-input-system · monobehaviour-lifecycle · overview-beginner-2d-unity-route