How do I prevent Input.GetButton from running multiple times.

Hi, I am making a shooter game and is working on Selector Fire. When switching between Fire Modes using pressing a specific button it runs multiple times.

`if(Input.GetKey(“v”) && IsSafe == true){
Debug.Log(“Switched To: Semi-Auto”);
IsSafe = false;
IsSemi = true;
IsAuto = false;
}

    if(Input.GetKey("v") && IsSemi == true){
        Debug.Log("Switched To: Full-Auto");
        IsSafe = false;
        IsSemi = false;
        IsAuto = true;
    }

    if(Input.GetKey("v") && IsAuto == true){
        Debug.Log("Switched To: Safe");
        IsSafe = true;
        IsSemi = false;
        IsAuto = false;
    }

`
When I press V it switches from Safe => Semi => Auto all in one button. How can I make it to only change from Safe => Semi when I click V once.

Get getkey returns true for every frame the key is pressed while getkeydown only returns true for the first frame the key was pressed.

Hope this helps.