Copyright © 2026 Unity Technologies
Recommendations Perform your input processing and game logic in your Update method(s) - this includes setting the velocity of a rigid body as in the example using the Direct processing style. Only use FixedUpdate for anything that requires a simulation to be run at specific discrete time-steps. Be aware that FixedUpdate may not even be called (or may be called several times) each game frame. Suggested Changes To Sample 1. Remove the FixedUpdate function from InputProcessor.cs 2. Change the Update and FixedUpdate functions in Jumper.cs to: private void Update() { if (InputProcessor.ProcessingStyle == InputProcessingStyle.Direct && _inputType != InputType.NewEvent) { if (GetDown()) TryJump(); return; } if (GetDown()) TrySetShouldJump(); } private void FixedUpdate() { if (_shouldJump) OnJump.Invoke(); } ... then the sample behaves as expected: the balls will all behave the same regardless of which InputProcess / InputStyle is selected.
Steps to reproduce:
1. Open the attached “InputLossReproCase.zip” project
2. Open the “SampleScene” in Assets/Scenes
3. Enter Play Mode
4. Wait until all 3 balls have landed on the ground and press Space Bar to make them jump
5. Observe the Scene view and the Console window
Expected results: All balls jump on the same frame with no input lag
Actual results: Often the Input System balls jump 1-2 frames after the Legacy Input ball
Reproducible with: 1.7.0 (2021.3.39f1, 2022.3.32f1), 1.8.2 (2021.3.39f1, 2022.3.32f1, 6000.0.6f1)
Reproducible on: macOS 14.4.1, Windows 11
Not reproducible on: No other environments tested
Issues you vote on will appear here