New Input System Part 2

Abhishek Smith

Abhishek Smith

Building Outscal | Land Jobs in the gaming industry | EA, Epic Games, TCS, | CMU, IIT K

Interaction Types (Beyond Basic Input)

  • Tap: Quick press & release
  • Hold: Press & hold detection
  • SlowTap: Delayed press recognition
  • MultiTap: Double/triple click handling

How to use:

action.AddBinding().WithInteraction("Hold", duration: 0.5f);


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

Show More