Effective way to change var after buttondown

Hi,
I have an object that constantly rotates around its Y axis.
I want to change the direction of the rotation each time I press (either tap/hold) a button.
The direction of the rotation is fixed by an INT variable that is changed from 1 to 0 (1=right, 0=left).

I’ve written a function that is called inside FixedUpdate, and it basically works, but sometimes it “misses” and failed to change the variable.

private int RotationDirection;

	void Start () {

	RotationDirection=1;
       }

	void FixedUpdate () {

		switchRotation(); 
        }



void switchRotation(){

					if(RotationDirection==0 && Input.GetButtonDown("Fire1")){
						RotationDirection=1;
						
						}
					
else{
						if(RotationDirection==1 && Input.GetButtonDown("Fire1")){
						RotationDirection=0;
					
		}
	}
				
}

Is there a way to change that variable in a “Full Proof” way?

Hello, first off, I wouldn’t put this code in fixedupdate. That is for very fast, physics oriented calculations. Instead, I would write the code like:

void Update()
{
    if(Input.GetButtonDown("Fire1")){
        if(RotationDirection == 0)
            RotationDirection = 1;
        else
            RotationDirection = 0;
    }
}

This will work. The IF statement is also simplified to avoid your “skipping” issue