Struct InputEventListener
Wraps around mechanisms for listening in on the InputEvent stream made available through onEvent.
Namespace: UnityEngine.InputSystem.LowLevel
Syntax
public struct InputEventListener : IObservable<InputEventPtr>
Remarks
This struct can be used to add (Addition(InputEventListener, Action<InputEventPtr, InputDevice>)) or remove (Subtraction(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();
Operators
Addition(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}");
};
See Also
Subtraction(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;