Resetting Only One Input Axis

At present, I have one invisible object in my scene handling all input and running a variable that makes it so that no buttons work within 10 frames of any other button being pressed, in order to prevent a button from being counted as pressed multiple times. This is functional, but not ideal. This would, for instance, prevent people from pressing two different buttons in quick succession - the second button they press would return as not being pressed if they’re fast enough with it (via pressing both simultaneously, for example).

When looking for solutions, I found Input.ResetInputAxes, but this resets all input axes, which would open an entirely new can of worms with stuff like movement suddenly not working while any other button is pressed. Is there any way to just reset one at a time?

Ultimately the actions should be done on events (maybe with Messenger) and after complete allow another so some actions can be longer i.e. jumps, actions etc.

float lastJumpTime = 0f;

void Jump(float amount, bool overrideTimer) {
    if(Time.time > lastJumpTime + 2f || overrideTimer) { 
        // only allow a jump every 2 seconds unless overridden.
     lastJumpTime = Time.time;
     Score(10);
     playerBall.rigidbody.AddForce(0, amount, 0);
     Debug.Log("Jumping");
 }
} 

But what you want probably is an abstraction. When you say Input.GetAxis(“Horizontal”) for instance you can hold it in a temp variable and then only listen to the ones you want when you need.

Vector2 latestInput = Vector2.zero;
// only listen to this if your time is up for another vertical
latestInput.y = Input.GetAxis("Vertical");
// only listen to this if your time is up for another horizontal
latestInput.x = Input.GetAxis("Horizontal");

// use input for passing to controller…