My GUI buttons are triggering without user input.

I am trying to create a very simple menu for use in a seperate menu screen. It has a button configuration to load the first level the credits or exit. However when the scene loads the credit button automatically activates. I have tried disabling it and it makes the start button trigger. If I disable that one the exit button triggers. I am not sure what I am doing wrong here.

function OnGUI () {


    //Menu screen script
    
    //if
    //if no work add if
     (GUI.Button (Rect (900, 800, Screen.width, Screen.height), "START GAME"));
           Application.LoadLevel("Game");
        
       
        (GUI.Button (Rect (900, 850, Screen.width, Screen.height), "Credits"));
         Application.LoadLevel("Credits");
        
     
         (GUI.Button (Rect (900, 900, Screen.width, Screen.height), "Exit"));
        Application.Quit() ; 
     
        }
        
        
 function Update () {  // this part gets done every refresh, which will vary by machine


    
	if (Input.GetKey(KeyCode.Escape))
    {      
      Application.Quit() ; 
       }
       }

You need wrap the GUI.Button call into an if statement. It looks like you may have had that initially but have commented it out? But the following should work:

if(GUI.Button (Rect (0, 0, 100, 50), "START GAME"))
           Application.LoadLevel("Game");
 
 
if(GUI.Button (Rect (0, 50, 100, 50), "Credits"))
         Application.LoadLevel("Credits");
 
 
if(GUI.Button (Rect (0, 100, 100, 50), "Exit"))
        Application.Quit(); 

Oh, forgot to mention, you shouldn’t have a semicolon after the if statement. That causes the end of the if and the next line will get run automatically, which explains what you were seeing. May be a good idea to always wrap your if logic with curly braces:

if(GUI.Button (Rect (0, 0, 100, 50), "START GAME"))
{
   Application.LoadLevel("Game");
}