Unity – Scripting – OnGUI – Buttons

Videogames Development – Unity – Code GUI Objects – Buttons

UnityGUI allows you to create a wide variety of highly functional GUIs very quickly and easily. Rather than creating a GUI object, manually positioning it, and then writing a script that handles its functionality, you can do everything at once with just a few lines of code. The code produces GUI controls that are instantiated, positioned and handled with a single function call.

Simple Text Button

1. Assign the script to the Camera:

#pragma strict

function Start () {

}

function OnGUI () {
	if (GUI.Button (Rect (10,10,150,100), "I am a button")) {
		print ("You clicked the button!");
	}
}

function Update () {

}

Statement:
GUI.Button (Rect (10,10,150,100), “I am a button”)
GUI.Button (Rectangular (x topleft,y topleft,x bottomright,y bottomright), “Button Text”)

Image Button

1. Assign the script to the Camera:

#pragma strict

	var btnTexture : Texture;
	function OnGUI() {
                // Texture Controller
		if (!btnTexture) {
			Debug.LogError("Please assign a texture on the inspector");
			return;
		}
		if (GUI.Button(Rect(10,10,150,100),btnTexture))
			Debug.Log("Clicked the button with an image");
	}

2. Select the Camera> ‘Inspector’> Script> DRAG AND DROP Texture from ‘Assets’ to Script> ‘Btn Texture’ variable.

3. Play and enjoy!

Multiple Buttons

1. Assign the script to the Camera:

Left Side Bar:

#pragma strict

	function OnGUI() {

        // Multiple Buttons - Left Side Bar
		if (GUI.Button(Rect(10,10,50,50),"BTN1"))
			Debug.Log("Clicked BTN1");
		if (GUI.Button(Rect(10,70,50,50),"BTN2"))
			Debug.Log("Clicked BTN2");
		if (GUI.Button(Rect(10,130,50,50),"BTN3"))
			Debug.Log("Clicked BTN3");
		if (GUI.Button(Rect(10,190,50,50),"BTN4"))
			Debug.Log("Clicked BTN4");
	}

Top Left Bar:

#pragma strict

	function OnGUI() {

        // Multiple Buttons - Top Left Bar
		if (GUI.Button(Rect(10,10,50,50),"BTN1"))
			Debug.Log("Clicked BTN1");
		if (GUI.Button(Rect(70,10,50,50),"BTN2"))
			Debug.Log("Clicked BTN2");
		if (GUI.Button(Rect(130,10,50,50),"BTN3"))
			Debug.Log("Clicked BTN3");
		if (GUI.Button(Rect(190,10,50,50),"BTN4"))
			Debug.Log("Clicked BTN4");
	}