Skip to content

Commit e581aad

Browse files
committed
fixed frame state saving
1 parent a814fa2 commit e581aad

File tree

1 file changed

+13
-4
lines changed

1 file changed

+13
-4
lines changed

Packages/com.unity.inputsystem/InputSystem/Actions/InputActionState.cs

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -559,6 +559,10 @@ private void RestoreActionStatesAfterReResolvingBindings(UnmanagedMemory oldStat
559559
newActionState.pressedInUpdate = oldActionState.pressedInUpdate;
560560
newActionState.releasedInUpdate = oldActionState.releasedInUpdate;
561561
newActionState.startTime = oldActionState.startTime;
562+
newActionState.framePerformed = oldActionState.framePerformed;
563+
newActionState.frameCompleted = oldActionState.frameCompleted;
564+
newActionState.framePressed = oldActionState.framePressed;
565+
newActionState.frameReleased = oldActionState.frameReleased;
562566
newActionState.bindingIndex = oldActionState.bindingIndex;
563567
newActionState.frame = oldActionState.frame;
564568

@@ -2460,10 +2464,12 @@ private void ChangePhaseOfActionInternal(int actionIndex, TriggerState* actionSt
24602464
{
24612465
newState.lastCanceledInUpdate = InputUpdate.s_UpdateStepCount;
24622466
newState.lastPerformedInUpdate = actionState->lastPerformedInUpdate;
2467+
newState.framePerformed = actionState->framePerformed;
24632468
}
24642469
else
24652470
{
24662471
newState.lastPerformedInUpdate = actionState->lastPerformedInUpdate;
2472+
newState.framePerformed = actionState->framePerformed;
24672473
newState.lastCanceledInUpdate = actionState->lastCanceledInUpdate;
24682474
}
24692475

@@ -2479,10 +2485,13 @@ private void ChangePhaseOfActionInternal(int actionIndex, TriggerState* actionSt
24792485
else
24802486
{
24812487
newState.lastCompletedInUpdate = actionState->lastCompletedInUpdate;
2488+
newState.frameCompleted = actionState->frameCompleted;
24822489
}
24832490

24842491
newState.pressedInUpdate = actionState->pressedInUpdate;
2492+
newState.framePressed = actionState->framePressed;
24852493
newState.releasedInUpdate = actionState->releasedInUpdate;
2494+
newState.frameReleased = actionState->frameReleased;
24862495
if (newPhase == InputActionPhase.Started)
24872496
newState.startTime = newState.time;
24882497
*actionState = newState;
@@ -3654,10 +3663,10 @@ public struct TriggerState
36543663
[FieldOffset(44)] private uint m_ReleasedInUpdate;
36553664
[FieldOffset(48)] private uint m_LastCompletedInUpdate;
36563665
[FieldOffset(52)] private int m_Frame;
3657-
[FieldOffset(52)] private int m_FramePerformed;
3658-
[FieldOffset(52)] private int m_FramePressed;
3659-
[FieldOffset(52)] private int m_FrameReleased;
3660-
[FieldOffset(52)] private int m_FrameCompleted;
3666+
[FieldOffset(56)] private int m_FramePerformed;
3667+
[FieldOffset(60)] private int m_FramePressed;
3668+
[FieldOffset(64)] private int m_FrameReleased;
3669+
[FieldOffset(68)] private int m_FrameCompleted;
36613670

36623671
/// <summary>
36633672
/// Phase being triggered by the control value change.

0 commit comments

Comments
 (0)