docs.unity3d.com
    Show / Hide Table of Contents

    Class OnScreenControl

    Base class for on-screen controls.

    Inheritance
    Object
    OnScreenControl
    OnScreenButton
    OnScreenStick
    Namespace: UnityEngine.InputSystem.OnScreen
    Syntax
    public abstract class OnScreenControl : MonoBehaviour
    Remarks

    The set of on-screen controls together forms a device. A control layout is automatically generated from the set and a device using the layout is added to the system when the on-screen controls are enabled.

    The layout that the generated layout is based on is determined by the control paths chosen for each on-screen control. If, for example, an on-screen control chooses the 'a' key from the "Keyboard" layout as its path, a device layout is generated that is based on the "Keyboard" layout and the on-screen control becomes the 'a' key in that layout.

    If a has multiple on-screen controls that reference different types of device layouts (e.g. one control references 'buttonWest' on a gamepad and another references 'leftButton' on a mouse), then a device is created for each type referenced by the setup.

    Properties

    control

    The actual control that is fed input from the on-screen control.

    Declaration
    public InputControl control { get; }
    Property Value
    Type Description
    InputControl
    Remarks

    This is only valid while the on-screen control is enabled. Otherwise, it is null. Also, if no controlPath has been set, this will remain null even if the component is enabled.

    controlPath

    The control path (see InputControlPath) for the control that the on-screen control will feed input into.

    Declaration
    public string controlPath { get; set; }
    Property Value
    Type Description
    String
    Remarks

    A device will be created from the device layout referenced by the control path (see TryGetDeviceLayout(String)). The path is then used to look up control on the device. The resulting control will be fed values from the on-screen control.

    Multiple on-screen controls sharing the same device layout will together create a single virtual device. If, for example, one component uses "<Gamepad>/buttonSouth" and another uses "<Gamepad>/leftStick" as the control path, a single Gamepad will be created and the first component will feed data to buttonSouth and the second component will feed data to leftStick.

    See Also
    InputControlPath

    controlPathInternal

    Accessor for the controlPath of the component. Must be implemented by subclasses.

    Declaration
    protected abstract string controlPathInternal { get; set; }
    Property Value
    Type Description
    String
    Remarks

    Moving the definition of how the control path is stored into subclasses allows them to apply their own InputControlAttribute attributes to them and thus set their own layout filters.

    Methods

    OnDisable()

    Declaration
    protected virtual void OnDisable()

    OnEnable()

    Declaration
    protected virtual void OnEnable()

    SendValueToControl<TValue>(TValue)

    Declaration
    protected void SendValueToControl<TValue>(TValue value)
        where TValue : struct
    Parameters
    Type Name Description
    TValue value
    Type Parameters
    Name Description
    TValue

    SentDefaultValueToControl()

    Declaration
    protected void SentDefaultValueToControl()
    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