docs.unity3d.com
Search Results for

    Show / Hide Table of Contents

    Struct InputEventListener

    Wraps around mechanisms for listening in on the InputEvent stream made available through onEvent.

    Implements
    IObservable<InputEventPtr>
    Inherited Members
    ValueType.Equals(object)
    ValueType.GetHashCode()
    ValueType.ToString()
    Namespace: UnityEngine.InputSystem.LowLevel
    Assembly: Unity.InputSystem.dll
    Syntax
    public struct InputEventListener : IObservable<InputEventPtr>
    Remarks

    This struct can be used to add (operator +(InputEventListener, Action<InputEventPtr, InputDevice>)) or remove (operator -(InputEventListener, Action<InputEventPtr, InputDevice>)) callbacks directly to/from the event pipeline.

    Alternatively, it can be used as an IObservable to Subscribe(IObserver<InputEventPtr>) observers to the event stream. See Observable for extension methods to set up various observer mechanisms.

    InputSystem.onEvent
        .ForDevice(Mouse.current)
        .Call(evt =>
            {
                foreach (var control in evt.EnumerateChangedControls())
                    Debug.Log($"Control {control} on mouse has changed value");
            });

    Methods

    Subscribe(IObserver<InputEventPtr>)

    Subscribe an observer to the event pump.

    Declaration
    public IDisposable Subscribe(IObserver<InputEventPtr> observer)
    Parameters
    Type Name Description
    IObserver<InputEventPtr> observer

    Observer to be notified for each event.

    Returns
    Type Description
    IDisposable

    A handle to dispose of the subscription.

    Remarks

    The easiest way to subscribe is via the extension methods in Observable.

    // Subscribe.
    var subscription = InputSystem.onEvent.Call(e => Debug.Log("Event"));
    
    // Unsubscribe.
    subscription.Dispose();
    See Also
    onEvent

    Operators

    operator +(InputEventListener, Action<InputEventPtr, InputDevice>)

    Add a delegate to be called for each InputEvent that is processed by the Input System.

    Declaration
    public static InputEventListener operator +(InputEventListener _, Action<InputEventPtr, InputDevice> callback)
    Parameters
    Type Name Description
    InputEventListener _
    Action<InputEventPtr, InputDevice> callback

    A callback to call for each event.

    Returns
    Type Description
    InputEventListener

    The same listener instance.

    Remarks
    InputSystem.onEvent +=
        (eventPtr, device) =>
        {
            Debug.Log($"Event for {device}");
        };
    Exceptions
    Type Condition
    ArgumentNullException

    callback is null.

    See Also
    onEvent

    operator -(InputEventListener, Action<InputEventPtr, InputDevice>)

    Remove a delegate from InputEvent.

    Declaration
    public static InputEventListener operator -(InputEventListener _, Action<InputEventPtr, InputDevice> callback)
    Parameters
    Type Name Description
    InputEventListener _
    Action<InputEventPtr, InputDevice> callback

    A callback that was previously installed on onEvent.

    Returns
    Type Description
    InputEventListener

    The same listener instance.

    Remarks
    InputSystem.onEvent -= myDelegate;
    Exceptions
    Type Condition
    ArgumentNullException

    callback is null.

    See Also
    onEvent

    Implements

    IObservable<T>

    Extension Methods

    Observable.CallOnce<TValue>(IObservable<TValue>, Action<TValue>)
    Observable.CallOnce<TValue>(IObservable<TValue>, Action<TValue>)
    Observable.Call<TValue>(IObservable<TValue>, Action<TValue>)
    Observable.Call<TValue>(IObservable<TValue>, Action<TValue>)
    Observable.ForDevice(IObservable<InputEventPtr>, InputDevice)
    Observable.ForDevice<TDevice>(IObservable<InputEventPtr>)
    Observable.SelectMany<TSource, TResult>(IObservable<TSource>, Func<TSource, IEnumerable<TResult>>)
    Observable.SelectMany<TSource, TResult>(IObservable<TSource>, Func<TSource, IEnumerable<TResult>>)
    Observable.Select<TSource, TResult>(IObservable<TSource>, Func<TSource, TResult>)
    Observable.Select<TSource, TResult>(IObservable<TSource>, Func<TSource, TResult>)
    Observable.Take<TValue>(IObservable<TValue>, int)
    Observable.Take<TValue>(IObservable<TValue>, int)
    Observable.Where<TValue>(IObservable<TValue>, Func<TValue, bool>)
    Observable.Where<TValue>(IObservable<TValue>, Func<TValue, bool>)

    See Also

    onEvent
    In This Article
    Back to top
    Copyright © 2024 Unity Technologies — Trademarks and terms of use
    • Legal
    • Privacy Policy
    • Cookie Policy
    • Do Not Sell or Share My Personal Information
    • Your Privacy Choices (Cookie Settings)