Currently, all of the logic is inside of the update function.
Instead, we should gather inputs and move the camera inside of the update, and do all of the physics logic inside of fixed update.
We should then interpolate the character position to preserve smooth behavior.
See: https://github.com/bevyengine/bevy/blob/main/examples/movement/physics_in_fixed_timestep.rs
Currently, all of the logic is inside of the update function.
Instead, we should gather inputs and move the camera inside of the update, and do all of the physics logic inside of fixed update.
We should then interpolate the character position to preserve smooth behavior.
See: https://github.com/bevyengine/bevy/blob/main/examples/movement/physics_in_fixed_timestep.rs