Quick answer: Unity Input System PlayerInput component not switching to gamepad when the player presses a button? Auto-Switch may be off, or scheme requirements include “Required” devices that are missing.
User plays with keyboard, picks up a controller, presses A. The UI prompts still show keyboard glyphs. Auto-switch didn’t trigger.
Auto-Switch Checkbox
PlayerInput component → Auto-Switch Control Scheme. Default off in newer versions. Enable it for single-player auto-detection.
Scheme Device Requirements
Each scheme lists required devices. “Required” means a scheme can’t activate without that device class connected. “Optional” allows fallback.
Multi-Player Caution
Auto-switch is single-player only. Multi-player needs PlayerInputManager with explicit join.
UI Glyphs
Subscribe to onControlsChanged to update glyphs when scheme switches. Single source of truth: scheme name → glyph set.
Verifying
Pressing keyboard then gamepad switches scheme automatically. Glyphs update on each switch.
“Auto-switch is an opt-in checkbox + scheme requirements that match.”
Test multiple controller types in the test suite — auto-switching has edge cases that only show in rapid back-and-forth.