Problem with IF with 2 outputs.

Sorry if the title didn’t make much sense, but I’m finding it hard to even word what I want to be able to find a solution. It’s obviously something incredibly easy and basic but I can’t for the life of me find an answer. I’ve got a simple java script that checks if the mouse button is held down, if it is then the camera freezes. I’m now trying to consolidate my separate script that also unhides the hidden mouse cursor, but I can’t get this to work!

    function Update () {
        if (Input.GetMouseButton(1))
    	GetComponent(MouseLook).enabled = false;
    	Screen.showCursor = true;
    
        else
        	GetComponent(MouseLook).enabled = true;
        	Screen.showCursor = false;
    
    }

After reading a few IF and ELSE tutorials a lot of them show the IF and the ELSE with it’s own { }, but if I remove the showCursor lines altogether the code works fine as shown. Can someone set me straight?

1 Answer

1

Correct – the if statement requires braces if there is more than one statement:

if (Input.GetMouseButton(1))
{
    GetComponent(MouseLook).enabled = false;
    Screen.showCursor = true;
}
else
{
    GetComponent(MouseLook).enabled = true;
    Screen.showCursor = false;
}

"if there is more than one statement" Flipping it around, nearly all languages have a special rule that if you leave out the curly-braces, the next statement counts as the thing in curly-braces. So if(a) b; c; counts as if(a) {b;} c; Works for ifs and loops. No one makes a big deal about it, since most people learn it very early and use it all the time.