After some research, I found that it was better to put all physics related code into FixedUpdate by saving input in a variable of bigger scope.
Although, for a single force (like a jump when a key is pressed), would I need to store the state of the jump keybind in Update and use it in FixedUpdate? Here is an example, I know my explaining is bad:
private bool jumpKey;
private void Update()
{
jumpKey = Input.GetKey(jumpKeyBind);
}
private void FixedUpdate()
{
if (jumpKey && other requirements)
apply the impulse to the rb
}
This code does work, but it still raises [to me] the following question : does every single bit of physics need to be in the FixedUpdate method? If I want to execute the AddForce method when the player reaches somewhere like the top of a stairway, does it need to be in FixedUpdate?