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.