Class InputActionPerformedEvent
Published via the Scylla Event eXchange System (SEX) when a registered input action
reaches its performed phase, indicating that all interaction conditions
(e.g., press threshold, hold duration) have been met.
Inherited Members
Namespace: Scylla.Input
Assembly: ScyllaInput.dll
Syntax
public class InputActionPerformedEvent : ScyllaEvent
Remarks
For button-type actions this event fires on the frame the button is pressed. For value-type actions (axes, sticks) it fires whenever the value crosses the press threshold. Both Value and Vector2Value are populated regardless of action type; read the one that matches the action's value type.
Subscribe via ScyllaEvents.Listen<InputActionPerformedEvent>.
The ActionID and MapID strings correspond to the
IDs registered with IInputActionManager.
Properties
ActionID
Gets or sets the string identifier of the action that was performed, as
registered with IInputActionManager. Never null or empty.
Declaration
public string ActionID { get; set; }
Property Value
| Type | Description |
|---|---|
| string |
Device
Gets or sets the Unity Input System device that generated the input which caused
the action to be performed. May be null if the device could not be
determined at the time of dispatch.
Declaration
public InputDevice Device { get; set; }
Property Value
| Type | Description |
|---|---|
| InputDevice |
Interaction
The kind of interaction that drove this fire.
Declaration
public InputInteractionKind Interaction { get; set; }
Property Value
| Type | Description |
|---|---|
| InputInteractionKind |
Remarks
Default means no interaction was authored on the binding or the action, so Unity's own button behaviour drove it. This is the common case and, being the enum's zero value, is also what an event constructed by hand reports.
Multiple never appears here. An action that declares two interactions still fires through exactly one of them, and Unity has already decided which by the time this event is published, so a subscriber switching on this value does not need a case for it.
An interaction a project registered itself reports Unknown. Use InteractionName to separate two custom interactions from one another.
InteractionName
The registered name of the interaction that drove this fire.
Declaration
public string InteractionName { get; set; }
Property Value
| Type | Description |
|---|---|
| string |
Remarks
The name as it would be authored, so a hold reports "Hold" rather than the
type name. Never null: a fire with no interaction reports
NAME_DEFAULT.
MapID
Gets or sets the string identifier of the action map that contains this action,
as registered with IInputActionManager. Never null or empty.
Declaration
public string MapID { get; set; }
Property Value
| Type | Description |
|---|---|
| string |
Time
Gets or sets the timestamp (in seconds, relative to the Unity Input System clock)
at which the action was performed. This is sourced from
InputAction.CallbackContext.time and may differ slightly from
Time.time due to input system buffering.
Declaration
public double Time { get; set; }
Property Value
| Type | Description |
|---|---|
| double |
Value
Gets or sets the scalar float value of the action at the moment it was performed.
For button actions this is always 1.0 when pressed. For axis/trigger
actions this reflects the actual magnitude of the input in the range
[0.0, 1.0] or [-1.0, 1.0] depending on the
action's type configuration.
Declaration
public float Value { get; set; }
Property Value
| Type | Description |
|---|---|
| float |
Vector2Value
Gets or sets the two-dimensional vector value of the action at the moment it was
performed. Used for composite stick or 2D-axis actions (e.g., movement input).
For button or 1D-axis actions this will be Vector2.zero or a projected
single-axis value.
Declaration
public Vector2 Vector2Value { get; set; }
Property Value
| Type | Description |
|---|---|
| Vector2 |