Device Management (The Complete Suite)
- All Devices: InputSystem.devices
- All Gamepads: Gamepad.all
- Current Gamepad: Gamepad.current
- Enable Device: InputSystem.EnableDevice()
- Disable Device: InputSystem.DisableDevice()
Haptic Feedback (Full Control)
- Set Vibration: gamepad.SetMotorSpeeds()
- Pause Effects: gamepad.PauseHaptics()
- Resume Effects: gamepad.ResumeHaptics()
- Stop All: gamepad.ResetHaptics()
Control Schemes (Multi-Platform Done Right)
- Switch Schemes: playerInput.SwitchCurrentControlScheme()
- Check Current: playerInput.currentControlScheme
- Active Devices: playerInput.devices
Advanced Settings & Configuration
- Update Mode: InputSystem.settings.updateMode
- Fixed Update
- Dynamic Update
- Manual Update
- Noise Filtering: InputSystem.settings.filterNoiseOnCurrent
- Input Processing: action.processors = "normalize(min=0,max=1)"
Debugging Tools (Every Dev Must Know)
- Action State: Debug.Log(action.enabled)
- Bound Controls: Debug.Log(action.controls)
- Device Count: Debug.Log(InputSystem.devices.Count)
Pro Tips for Advanced Usage
- Use control schemes for seamless platform switching
- Implement proper haptic feedback for immersion
- Monitor device connection/disconnection events
- Process raw input values for custom behavior
- Profile input performance with Unity's Profiler
Advanced Pitfalls to Avoid
- Overusing haptic feedback (battery drain)
- Not handling device hot-plugging
- Ignoring input processor overhead
- Missing platform-specific input quirks
- Poor control scheme organization