quot;Device lost: {device}"); else if (change == InputUserChange.DeviceRegained) Debug.Log(quot;Device regained: {device}"); } } ``` Also handle **never connected**: `Gamepad.current == null` when you assumed a pad scheme — either fall back to Keyboard&Mouse or show a "press A to join" prompt via `PlayerInputManager`. ## 6.4 Enabling maps twice / leaking enables - Generated class: you `new` an asset instance — enabling it does not enable `PlayerInput`'s copy. - `PlayerInput` already enables its default map — also calling `Enable()` on a second instance → duplicate callbacks if you subscribed to both. - Components that `Enable()` an `InputActionReference` in `OnEnable` and forget who owns Disable cause "Interact works in menus" bugs. **Own enables in one director.** Everyone else only subscribes. ## 6.5 PlayerInput filtered copies When using `PlayerInput`, read **`playerInput.actions`**, not `InputSystem.actions` and not a separate `new MyActions()`. Device filtering for local multiplayer depends on that copy (workflow docs). Breaking it is a classic "player 2 steers player 1" bug. ## 6.6 Rebind memory leaks and stuck disables `RebindingOperation` must be **Disposed**. Cancel paths must **re-enable** the action. Missing either produces native leaks or a Jump that never works again until domain reload. ## 6.7 Composite vs scheme assignment Schemes must be ticked on composite **parts**. Assigning only the parent composite often leaves WASD unexpectedly active in Gamepad scheme filters. ## 6.8 PassThrough vs Button for XR UI poses Tracked position/orientation actions for UI **must** be PassThrough or one controller's pose wins conflict resolution and the other hand's ray dies — [tracked UI docs](https://docs.unity3d.com/Packages/[email protected]/manual/supported-ui-input-types-tracked.html). ## 6.9 Two UI input modules XRI's `XRUIInputModule` is incompatible with leaving `InputSystemUIInputModule` / Standalone enabled on the same EventSystem. Quest scenes: one module only ([[Meta Quest 2]], [[8.UI Toolkit for VR]]). ## 6.10 Mouse look + rebinding UI If Cursor is locked and you open a rebind overlay, unlock/show cursor and disable Player Look for that moment or the first click both rebinds and yaws the camera. ## 6.11 Netcode ownership Input System does not replicate. With [[Multiplayer with Netcode for GameObjects]], only the owning client should enable gameplay maps that drive that pawn. Hosting a listen-server with unbound clients enabling Keyboard Move will move the host pawn locally in confusing ways. ## 6.12 Quick diagnosis checklist 1. Active Input Handling value? 2. Is the `.inputed` saved? 3. Is the correct map enabled? Any second asset instance? 4. Binding actually assigned to the active control scheme? 5. UI module matching your stack? 6. For rebinds: overrides loaded after asset construct, operation disposed? 7. For Quest: are you on the LTS line required by [[Meta Quest 2]] notes? Back to hub: [[Input System]].