Customization
Input Icons provides several ways to customize how bindings are displayed in your game.
Using Different Sprites
To use your own custom sprites:
- Locate the Scriptable Objects in the Assets/InputIcons folder:
InputIconSetKeyboardSO
for keyboard spritesInputIconSetGamepadSO
for gamepad sprites
- Duplicate an existing IconSet and customize it:
- Create a new folder for your custom sprites
- Drag the Scriptable Object into your folder
- Click “Automatically apply button sprites of folder” in the inspector
- The tool will try to automatically assign sprites based on their names
-
For “Custom Context” sprites, apply them manually as they cannot be assigned automatically
- Once your Icon Sets are ready:
- Drag them into the Customization area of the Setup Window
- Hit the “(Re-)Create Sprite Assets” button
- You may need to enter play mode or recompile for the new icons to appear
Adding Custom Context Sprites
To add support for additional input controls:
- Find the input binding string:
- Add the script
II_UITextDisplayAllActions
to a TextMeshProUGUI object - Use a rebind button to override a binding with your new desired binding
- The input binding string will be displayed in brackets (e.g., “Scroll” for mousewheel)
- Add the script
- Add the binding to your Icon Set:
- Open your Icon Set Scriptable Object
- Add a new entry to the Custom Contexts list
- Enter the binding string and assign your sprite
After making changes to an Input Icon Set, you must create a new Sprite Asset or your changes won’t be reflected in TextMeshPro texts.
Performance Options
To improve performance when switching devices:
- Open the Input Icons Manager
- Change the Text Update Method to “Via Input Icons Text Components”
- Make sure required text objects have an InputIconsText component attached
This avoids searching the entire scene for text objects when devices change.
Display Settings
The InputIconsManager provides various display options:
Setting | Description |
---|---|
Show All Available Input Option | Toggle between showing only the first binding or all available bindings |
Multiple Input Delimiter | Define what appears between multiple bindings (e.g., “ <size=80%>or</size> “) |
Opening/Closing Tags | Add general styling for all displayed icons (e.g., size adjustments) |
Display Type | Choose between sprites, text, or text in brackets |
Text Display For Unbound Actions | Text to show for unbound actions |
Text Display Language | Display in English or System Language |
Action name output overrides | Override displayed text for specific actions (e.g., [MOUSE] instead of [POSITION]) |