Class InputControlPath | Package Manager UI website
docs.unity3d.com
    Show / Hide Table of Contents

    Class InputControlPath

    Functions to working with control path specs (like "/gamepad/*stick").

    Inheritance
    System.Object
    InputControlPath
    Namespace: UnityEngine.InputSystem
    Syntax
    public static class InputControlPath
    Remarks

    The thinking here is somewhat similar to System.IO.Path, i.e. have a range of static methods that perform various operations on paths.

    Has both methods that work just on paths themselves (like TryGetControlLayout(String)) and methods that work on paths in combination with controls (like TryFindControls(InputControl, String, Int32)).

    Fields

    DoubleWildcard

    Declaration
    public const string DoubleWildcard = "**"
    Field Value
    Type Description
    System.String

    Separator

    Declaration
    public const char Separator = '/'
    Field Value
    Type Description
    System.Char

    Wildcard

    Declaration
    public const string Wildcard = "*"
    Field Value
    Type Description
    System.String

    Methods

    Combine(InputControl, String)

    Declaration
    public static string Combine(InputControl parent, string path)
    Parameters
    Type Name Description
    InputControl parent
    System.String path
    Returns
    Type Description
    System.String

    Matches(String, InputControl)

    Declaration
    public static bool Matches(string expected, InputControl control)
    Parameters
    Type Name Description
    System.String expected
    InputControl control
    Returns
    Type Description
    System.Boolean

    MatchesPrefix(String, InputControl)

    Declaration
    public static bool MatchesPrefix(string expected, InputControl control)
    Parameters
    Type Name Description
    System.String expected
    InputControl control
    Returns
    Type Description
    System.Boolean

    ToHumanReadableString(String)

    Create a human readable string from the given control path.

    Declaration
    public static string ToHumanReadableString(string path)
    Parameters
    Type Name Description
    System.String path

    A control path such as "<XRController>{LeftHand}/position".

    Returns
    Type Description
    System.String

    A string such as "leftStick/x [Gamepad]".

    TryFindChild(InputControl, String, Int32)

    Declaration
    public static InputControl TryFindChild(InputControl control, string path, int indexInPath = 0)
    Parameters
    Type Name Description
    InputControl control
    System.String path
    System.Int32 indexInPath
    Returns
    Type Description
    InputControl

    TryFindChild<TControl>(InputControl, String, Int32)

    Declaration
    public static TControl TryFindChild<TControl>(InputControl control, string path, int indexInPath = 0)
        where TControl : InputControl
    Parameters
    Type Name Description
    InputControl control
    System.String path
    System.Int32 indexInPath
    Returns
    Type Description
    TControl
    Type Parameters
    Name Description
    TControl

    TryFindControl(InputControl, String, Int32)

    Declaration
    public static InputControl TryFindControl(InputControl control, string path, int indexInPath = 0)
    Parameters
    Type Name Description
    InputControl control
    System.String path
    System.Int32 indexInPath
    Returns
    Type Description
    InputControl

    TryFindControl<TControl>(InputControl, String, Int32)

    Return the first control that matches the given path.

    Declaration
    public static TControl TryFindControl<TControl>(InputControl control, string path, int indexInPath = 0)
        where TControl : InputControl
    Parameters
    Type Name Description
    InputControl control
    System.String path
    System.Int32 indexInPath
    Returns
    Type Description
    TControl
    Type Parameters
    Name Description
    TControl
    Remarks

    Does not allocate.

    Exceptions
    Type Condition
    System.ArgumentNullException

    TryFindControls(InputControl, String, Int32)

    Declaration
    public static InputControl[] TryFindControls(InputControl control, string path, int indexInPath = 0)
    Parameters
    Type Name Description
    InputControl control
    System.String path
    System.Int32 indexInPath
    Returns
    Type Description
    InputControl[]

    TryFindControls(InputControl, String, ref InputControlList<InputControl>, Int32)

    Declaration
    public static int TryFindControls(InputControl control, string path, ref InputControlList<InputControl> matches, int indexInPath = 0)
    Parameters
    Type Name Description
    InputControl control
    System.String path
    InputControlList<InputControl> matches
    System.Int32 indexInPath
    Returns
    Type Description
    System.Int32

    TryFindControls<TControl>(InputControl, String, Int32, ref InputControlList<TControl>)

    Perform a search for controls starting with the given control as root and matching the given path from the given position. Puts all matching controls on the list and returns the number of controls that have been matched.

    Declaration
    public static int TryFindControls<TControl>(InputControl control, string path, int indexInPath, ref InputControlList<TControl> matches)
        where TControl : InputControl
    Parameters
    Type Name Description
    InputControl control

    Control at which the given path is rooted.

    System.String path
    System.Int32 indexInPath
    InputControlList<TControl> matches
    Returns
    Type Description
    System.Int32
    Type Parameters
    Name Description
    TControl
    Remarks

    Matching is case-insensitive.

    Does not allocate managed memory.

    Exceptions
    Type Condition
    System.ArgumentNullException

    TryGetControlLayout(String)

    Declaration
    public static string TryGetControlLayout(string path)
    Parameters
    Type Name Description
    System.String path
    Returns
    Type Description
    System.String

    TryGetDeviceLayout(String)

    From the given control path, try to determine the device layout being used.

    Declaration
    public static string TryGetDeviceLayout(string path)
    Parameters
    Type Name Description
    System.String path

    A control path (like "/<gamepad>/leftStick")

    Returns
    Type Description
    System.String

    The name of the device layout used by the given control path or null if the path does not specify a device layout or does so in a way that is not supported by the function.

    Remarks

    This function will only use information available in the path itself or in layouts referenced by the path. It will not look at actual devices in the system. This is to make the behavior predictable and not dependent on whether you currently have the right device connected or not.

    Examples
    InputControlPath.TryGetDeviceLayout("/<gamepad>/leftStick"); // Returns "gamepad".
    InputControlPath.TryGetDeviceLayout("/*/leftStick"); // Returns "*".
    InputControlPath.TryGetDeviceLayout("/gamepad/leftStick"); // Returns null. "gamepad" is a device name here.
    Exceptions
    Type Condition
    System.ArgumentNullException

    path is null

    TryGetDeviceUsage(String)

    Declaration
    public static string TryGetDeviceUsage(string path)
    Parameters
    Type Name Description
    System.String path
    Returns
    Type Description
    System.String
    Back to top
    Copyright © 2023 Unity Technologies — Terms of use
    • Legal
    • Privacy Policy
    • Cookies
    • Do Not Sell or Share My Personal Information
    • Your Privacy Choices (Cookie Settings)
    "Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere (more info here). Other names or brands are trademarks of their respective owners.
    Generated by DocFX on 18 October 2023