npx skills add ...
npx skills add gamedev-skills/awesome-gamedev-agent-skills --skill unity-input-system
Wire player input in Unity 6.3 LTS with the Input System package: Input Actions, action maps, the PlayerInput component, and reading values via callbacks or polling. Use when the project has a .inputactions asset or com.unity.inputsystem, or when the user mentions the Unity Input System, InputAction, action maps, PlayerInput, control schemes, or rebinding.
npx skills add gamedev-skills/awesome-gamedev-agent-skills --skill unity-input-system
Read input through Unity's Input System package (com.unity.inputsystem, 1.x) —
action-based, device-agnostic, rebindable. Targets Unity 6.3 LTS. This is the modern
replacement for the legacy Input.GetAxis/Input.GetKey Input Manager.
.inputactions asset with
action maps and control schemes, wiring a PlayerInput component, reading a Vector2
stick/WASD value, or handling gamepad + keyboard + touch from one set of actions.Packages/manifest.json contains com.unity.inputsystem or the project has an
*.inputactions asset.When not to use: rebindable-control architecture across engines → input-systems
(this skill is the Unity-specific API). Moving the character once you have the input vector
→ unity-physics / unity-csharp-scripting.
Input System Package (New) or Both. Both is required if any old
Input.GetAxis code remains..inputactions asset. Add an action map (e.g. Gameplay), add actions
(Move = Value/Vector2, Jump = Button, Fire = Button), and bind them to controls and
composite bindings (WASD = 2D Vector composite).PlayerInput component (designer-friendly) — drop it on the player, point it at the
asset, pick a Behavior (Send Messages / Broadcast / Invoke Unity Events / Invoke C#
Events). Best for single/local-coop players.InputActionReference / InputActionAsset) — most control; you
Enable() actions and read them. Best for systems and tools.PlayerInput enables its default map automatically;
actions you reference yourself must be .Enable()d (and disabled on teardown).PlayerInput with "Send Messages" (handlers on the same GameObject)Input Manager (Old), or you
forgot to Enable() the action/map. PlayerInput auto-enables; raw InputActions do not.InvalidOperationException about the old input backend → some script still calls
Input.GetAxis/Input.GetKey while Active Input Handling is New. Port it or set Both.ReadValue → button presses are edge events; use the
performed callback (or WasPressedThisFrame()), not per-frame ReadValue for triggers.Send Messages handlers never fire → the receiving script must be on the same
GameObject as the PlayerInput; Broadcast Messages reaches children too.-=) in OnDisable; re-subscribing in OnEnable
without unsubscribing doubles up handlers.PerformInteractiveRebinding), saving/loading
bindings as JSON, and local multiplayer with PlayerInputManager, read
references/rebinding.md.https://docs.unity3d.com/Manual/com.unity.inputsystem.html).input-systems — engine-agnostic input architecture (rebinding, buffering, multi-device).unity-csharp-scripting — the MonoBehaviour these handlers live in.unity-physics — applying the input vector to a Rigidbody.