A flexible and scalable input framework for Unity built on top of the New Input System, designed to simplify input configuration, rebinding, visualization, and runtime handling across multiple devices.
Input System Extension - Package v0.0.4 / Documentation
The Input System Extension provides a complete solution for managing player input in Unity, including:
- Runtime rebinding (keyboard, mouse, gamepad, touch)
- Input visualization (text + dynamic icons)
- Persistent binding storage
- Event-driven input handling
- Editor tools for fast UI setup
It is designed to work seamlessly with TextMeshPro, providing a clean and customizable UI workflow.
-
Full rebind lifecycle:
- Start / Complete / Cancel
- Duplicate prevention
- Composite bindings support
-
Real-time UI updates
-
Works with both standard UI and TMP
- Automatic save/load of binding overrides
- Uses PlayerPrefs as backend
- No manual serialization required
-
Automatic switching between:
- Keyboard text
- Gamepad icons (Xbox / PlayStation)
-
Fallback to text when no icon is available
-
Fully customizable icon mappings
-
Convert raw input into structured events:
- Pressed
- Hold
- Released
-
Supports multiple listeners per input
-
Owner-based system prevents conflicts
-
Works with any input type (float, Vector2, bool, etc.)
-
Detect activity from:
- Keyboard
- Mouse
- Gamepad
- Touch
-
Useful for:
- Switching UI prompts
- Detecting active device
- Built-in Project Settings panel
- Automatic asset creation
- Prefab instantiation tools
- Ready-to-use UI components
- Reset individual bindings
- Reset all bindings at once
- Ideal for settings menus
The system is built around a few core components:
-
Rebind Control Managers Handle UI, rebinding logic, and binding display.
-
Input System Event Dispatcher Centralized event system for handling input states.
-
InputSystemExtensionData (ScriptableObject) Stores:
- Default input asset
- Icon mappings
- PlayerPrefs key
-
Utility Systems
- Input detection helpers
- Binding save/load system
-
Import the package into your Unity project
-
Ensure the New Input System is enabled
-
Create (or auto-generate) the
Input System Extension Dataasset -
Add UI prefabs via:
GameObject → Tools → Input System Extension -
Configure your input actions and bindings
-
(Optional) Use the event system for gameplay logic
For usage tutorials and demonstrations, check the YouTube playlist:
Your feedback is invaluable! If you encounter bugs or have suggestions, feel free to open an issue or reach out.
Git Version: v0.4