Input Icons for TMPro


Display button prompts with ease in TMPro Text, Sprite Renderers and UI Images! Support for keyboard/mouse and gamepads.


by Tobias Froihofer


★★★★★ star rating
Price History +

Contact | Forum


Keyboard and Gamepad Sprites Vol1 also contains the graphics of this asset.

UI Toolkit support: use the free Input Icons - UI Toolkit Extension


The easiest way to display dynamic button prompts in your games!


Input Icons allows you to dynamically display the bindings of Input Action Assets (new Input System) as sprites in TextMeshPro texts, Sprite Renderers and UI Images or as a special SDF font in TMPro texts. Keyboard and Controllers (XBox, PS3, PS4, PS5, NSwitchPro) are supported and displayed sprites automatically update when the user switches devices.


Rebinding prefabs are included, providing players with the option to rebind their keys/buttons.


Features:

  • Easily display bindings in
    • TextMeshPro texts as sprites along with other text
    • TextMeshPro texts as an SDF font
    • Sprite Renderers and UI Images
  • Automatically updates displayed icons when the user switches devices
  • Supports keyboard and gamepad inputs, including Steam input
  • 1200+ sprites: 5 keyboard and 2 gamepad sprite sets per controller type (XBox, PS3, PS4, PS5 and NSwitchPro) included. Size per sprite: 256x256px
  • Allow players to rebind actions with included prefabs
  • No additional code or components required

Setup: The setup is short and can be done with a few clicks through the custom setup window in Tools -> Input Icons -> Input Icons Setup.


Usage: To display the bindings for a specific action, use the TMPro style tag. Simply type in the name of the action in your Input Action Asset. For example to display the "jump" action, write "<style=platformer controls/jump>". You can display the move action by typing "<style=platformer controls/move>". To only display the down part of the "move" action, write "<style=platformer controls/move/down>".


Displaying a font instead of sprites is also easy. Just add "font/" to the style like so "<style=font/platformer controls/move>".


For SpriteRenderers and UI Images: add a component to the object and select the action of the Input Action Asset you want to display.


Rebinding: The included rebinding prefabs allow players to rebind their keys/buttons. Rebound actions can be automatically saved between sessions. The prefabs are customizable and support rebinding for either keys/mouse, gamepad, or the currently used device.


Customization: The displayed sprites are stored in Scriptable Objects, allowing for easy customization by changing the data and creating a new Sprite Asset with the click of a button.

Additionally the manager Scriptable Object provides many options for customization like preferred start device, gamepad priority and muach more.


Input Icons supports keyboards (QWERTY, QWERTZ, AZERTY, fallback to QWERTY) and gamepads (XBox, PS3, PS4, PS5, Nintendo Pro, fallback to XBox by default).


1200+ PNGs are included for keys, mouse, and gamepad buttons, with special characters falling back to the QWERTY layout.


Documentation: A guide, explaining the setup process and the usage of the tool in detail is available in the main folder of the asset.