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
    Inherited Members
    System.Object.ToString()
    System.Object.Equals(System.Object)
    System.Object.Equals(System.Object, System.Object)
    System.Object.ReferenceEquals(System.Object, System.Object)
    System.Object.GetHashCode()
    System.Object.GetType()
    System.Object.MemberwiseClone()
    Namespace: UnityEngine.Experimental.Input
    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 UnityEngine.Experimental.Input.InputControlPath.TryFindControls``1(UnityEngine.Experimental.Input.InputControl,System.String,System.Int32,UnityEngine.Experimental.Input.InputControlList{``0}@)).

    Fields

    kDoubleWildcard

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

    kSeparator

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

    kWildcard

    Declaration
    public const string kWildcard = "*"
    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 "Gamepad leftStick/x".

    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.

    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.
    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