Class InputRebindUtils
Stateless utility helpers used by the input rebinding system to classify bindings, format composite-part names, and build display strings for modifier composites. Extracted from InputRebindManager so the manager's public API is focused on rebind orchestration and conflict detection rather than display formatting.
Inherited Members
Namespace: Scylla.Input
Assembly: ScyllaInput.dll
Syntax
public static class InputRebindUtils
Fields
DEVICE_NAME_GAMEPAD
Unity Input System device-name string (inner contents of GAMEPAD_DEVICE_PREFIX).
Declaration
public const string DEVICE_NAME_GAMEPAD = "Gamepad"
Field Value
| Type | Description |
|---|---|
| string |
DEVICE_NAME_KEYBOARD
Unity Input System device-name string (inner contents of KEYBOARD_DEVICE_PREFIX).
Declaration
public const string DEVICE_NAME_KEYBOARD = "Keyboard"
Field Value
| Type | Description |
|---|---|
| string |
DEVICE_NAME_MOUSE
Unity Input System device-name string (inner contents of MOUSE_DEVICE_PREFIX).
Declaration
public const string DEVICE_NAME_MOUSE = "Mouse"
Field Value
| Type | Description |
|---|---|
| string |
GAMEPAD_DEVICE_PREFIX
Unity Input System device-path prefix for the gamepad device (<Gamepad>).
Declaration
public const string GAMEPAD_DEVICE_PREFIX = "<Gamepad>"
Field Value
| Type | Description |
|---|---|
| string |
KEYBOARD_DEVICE_PREFIX
Unity Input System device-path prefix for the keyboard device (<Keyboard>).
Declaration
public const string KEYBOARD_DEVICE_PREFIX = "<Keyboard>"
Field Value
| Type | Description |
|---|---|
| string |
KEYBOARD_ESCAPE_PATH
Unity Input System path for the Escape key (default rebind cancel path).
Declaration
public const string KEYBOARD_ESCAPE_PATH = "<Keyboard>/escape"
Field Value
| Type | Description |
|---|---|
| string |
MODIFIER_COMPOSITE_MARKER
Substring used (case-insensitive) to identify modifier-style composite containers
by their Path field. Unity's built-in composite type names that start with
this substring are: ButtonWithOneModifier, ButtonWithTwoModifiers,
OneModifier, TwoModifiers.
Declaration
public const string MODIFIER_COMPOSITE_MARKER = "Modifier"
Field Value
| Type | Description |
|---|---|
| string |
MODIFIER_PATH_LEFT_ALT
Unity Input System path for the left Alt modifier key.
Declaration
public const string MODIFIER_PATH_LEFT_ALT = "<Keyboard>/leftAlt"
Field Value
| Type | Description |
|---|---|
| string |
MODIFIER_PATH_LEFT_CTRL
Unity Input System path for the left Control modifier key.
Declaration
public const string MODIFIER_PATH_LEFT_CTRL = "<Keyboard>/leftCtrl"
Field Value
| Type | Description |
|---|---|
| string |
MODIFIER_PATH_LEFT_SHIFT
Unity Input System path for the left Shift modifier key.
Declaration
public const string MODIFIER_PATH_LEFT_SHIFT = "<Keyboard>/leftShift"
Field Value
| Type | Description |
|---|---|
| string |
MODIFIER_PATH_RIGHT_ALT
Unity Input System path for the right Alt modifier key.
Declaration
public const string MODIFIER_PATH_RIGHT_ALT = "<Keyboard>/rightAlt"
Field Value
| Type | Description |
|---|---|
| string |
MODIFIER_PATH_RIGHT_CTRL
Unity Input System path for the right Control modifier key.
Declaration
public const string MODIFIER_PATH_RIGHT_CTRL = "<Keyboard>/rightCtrl"
Field Value
| Type | Description |
|---|---|
| string |
MODIFIER_PATH_RIGHT_SHIFT
Unity Input System path for the right Shift modifier key.
Declaration
public const string MODIFIER_PATH_RIGHT_SHIFT = "<Keyboard>/rightShift"
Field Value
| Type | Description |
|---|---|
| string |
MOUSE_DELTA_PATH
Unity Input System path for the per-frame mouse motion vector.
Declaration
public const string MOUSE_DELTA_PATH = "<Mouse>/delta"
Field Value
| Type | Description |
|---|---|
| string |
MOUSE_DEVICE_PREFIX
Unity Input System device-path prefix for the mouse device (<Mouse>).
Declaration
public const string MOUSE_DEVICE_PREFIX = "<Mouse>"
Field Value
| Type | Description |
|---|---|
| string |
MOUSE_POSITION_PATH
Unity Input System path for the mouse pointer position - never useful as a binding target.
Declaration
public const string MOUSE_POSITION_PATH = "<Mouse>/position"
Field Value
| Type | Description |
|---|---|
| string |
MOUSE_SCROLL_PATH
Unity Input System path for the mouse scroll wheel Vector2.
Declaration
public const string MOUSE_SCROLL_PATH = "<Mouse>/scroll"
Field Value
| Type | Description |
|---|---|
| string |
PART_NAME_BINDING
Legacy alias for the button part in some older composite types; checked alongside PART_NAME_BUTTON.
Declaration
public const string PART_NAME_BINDING = "binding"
Field Value
| Type | Description |
|---|---|
| string |
PART_NAME_BUTTON
Unity Input System composite part name for the triggering button in a modifier composite.
Declaration
public const string PART_NAME_BUTTON = "button"
Field Value
| Type | Description |
|---|---|
| string |
PART_NAME_MODIFIER
Unity Input System composite part name for the single modifier slot (ButtonWithOneModifier).
Declaration
public const string PART_NAME_MODIFIER = "modifier"
Field Value
| Type | Description |
|---|---|
| string |
PART_NAME_MODIFIER_1
Unity Input System composite part name for the first modifier slot (ButtonWithTwoModifiers).
Declaration
public const string PART_NAME_MODIFIER_1 = "modifier1"
Field Value
| Type | Description |
|---|---|
| string |
PART_NAME_MODIFIER_2
Unity Input System composite part name for the second modifier slot (ButtonWithTwoModifiers).
Declaration
public const string PART_NAME_MODIFIER_2 = "modifier2"
Field Value
| Type | Description |
|---|---|
| string |
Methods
BuildModifierCompositeDisplay(IReadOnlyList<ScyllaInputBinding>, int)
Builds a combined display string for a modifier composite binding by collecting
the modifier and button display strings from all parts in the composite
(e.g., "Shift + A").
Declaration
public static string BuildModifierCompositeDisplay(IReadOnlyList<ScyllaInputBinding> bindings, int partListIndex)
Parameters
| Type | Name | Description |
|---|---|---|
| IReadOnlyList<ScyllaInputBinding> | bindings | The full binding list of the action. |
| int | partListIndex | The list index (not the flat Unity binding index) of any part within the composite. |
Returns
| Type | Description |
|---|---|
| string | A combined display string, or |
FormatPartName(string)
Capitalizes the first letter of a composite part name for display
(e.g., "up" becomes "Up").
Declaration
public static string FormatPartName(string partName)
Parameters
| Type | Name | Description |
|---|---|---|
| string | partName | The part name to format. |
Returns
| Type | Description |
|---|---|
| string | The formatted part name, or empty string if input is null or empty. |
IsBindingRebindable(ScyllaInputBinding)
Determines whether a binding can be interactively rebound. Returns true for
any binding with a non-empty effective path; returns false for empty/cleared
bindings.
Declaration
public static bool IsBindingRebindable(ScyllaInputBinding binding)
Parameters
| Type | Name | Description |
|---|---|---|
| ScyllaInputBinding | binding | The binding to check. |
Returns
| Type | Description |
|---|---|
| bool |
|
Remarks
All input types are supported by the rebind system: keyboard keys, mouse buttons,
mouse scroll, mouse delta, gamepad buttons, gamepad sticks, gamepad triggers, D-pad,
stick clicks, etc. During interactive rebinding, StartRebind() excludes mouse
position/delta from capture candidates to prevent accidental re-capture.
IsButtonPartName(string)
Returns true if partName matches the button part of a
modifier composite (PART_NAME_BUTTON or
PART_NAME_BINDING). Comparison is case-insensitive.
Declaration
public static bool IsButtonPartName(string partName)
Parameters
| Type | Name | Description |
|---|---|---|
| string | partName |
Returns
| Type | Description |
|---|---|
| bool |
IsInModifierComposite(IReadOnlyList<ScyllaInputBinding>, int)
Determines whether the binding at the specified list index is part of a modifier composite by walking backwards to find the composite container and checking whether its path contains MODIFIER_COMPOSITE_MARKER.
Declaration
public static bool IsInModifierComposite(IReadOnlyList<ScyllaInputBinding> bindings, int listIndex)
Parameters
| Type | Name | Description |
|---|---|---|
| IReadOnlyList<ScyllaInputBinding> | bindings | The full binding list of the action. |
| int | listIndex | The list index (not the flat Unity binding index) of the binding to check. |
Returns
| Type | Description |
|---|---|
| bool |
|
IsModifierCompositePath(string)
Returns true if the given composite Path denotes a modifier composite
(case-insensitive MODIFIER_COMPOSITE_MARKER substring match).
Declaration
public static bool IsModifierCompositePath(string compositePath)
Parameters
| Type | Name | Description |
|---|---|---|
| string | compositePath |
Returns
| Type | Description |
|---|---|
| bool |
IsModifierPartName(string)
Returns true if partName matches any of the modifier
composite-part names (PART_NAME_MODIFIER,
PART_NAME_MODIFIER_1, PART_NAME_MODIFIER_2).
Comparison is case-insensitive.
Declaration
public static bool IsModifierPartName(string partName)
Parameters
| Type | Name | Description |
|---|---|---|
| string | partName |
Returns
| Type | Description |
|---|---|
| bool |