A bool is equal to the opposite of itself dosen't work

if (Input.GetButtonDown(“Look”))
{
look = !look;
}

It doesn’t work. I have tried

    if (Input.GetButtonDown("Look"))
    {
        look = true;
    }

This works…
Anyone know why?

This code does indeed work; however, it may not work as you intended.

You first example flips the boolean value each and every time the Input.GetButtonDown(“Look”) returns true.

So, if look is initially false, the first time the button is pressed and released it will become true, the second time it is pressed and released it will become false, etc. and will continue to toggle back and forth between true and false with each subsequent button press.

If you expect the value to stay and remain true, then you need to do what you have done in your second example.