GUI scripting? continued

I posted yesterday about scripting and I tried to reply to that thread but it would not let me. I have a new strip of code and it seems to fit a little bit better to my needs, but I need to know how to add buttons and other elements of a GUI rather than a label. So if anyone can give me any tips to adding different GUI elements (buttons especially) using this method of GUI i would be extremely grateful.


var information: String;
private var guiOn = false;
private var rect: Rect;

function OnMouseDown () {
	guiOn = true;
	rect = Rect(Screen.width/2-50,Screen.height/2-50,200,200);
	yield WaitForSeconds(10);
	guiOn = false;

function OnGUI () {
	if (guiOn){
		GUI.Label(rect, information);

I am using C# so if that first point is not valid - please excuse.
just for the sake of cleanness - private var rect: Rect = Rect(Screen.width/2-50,Screen.height/2-50,200,200);
at the top - it is just more convenient - and has the advantage that you could pass different rects (for different elements ) when the user clicks the mouse.

To your question…


if ( GUI.Button ( rect (…) , " click me " ) ) {
do something awesome();

i suggest taking a quick peak at the unity scripting API :

Unity - Scripting API: GUI.Button ( specifically for GUI.Button)

Unity - Scripting API: GUI (all GUI stuff at once )

btw. a very convenient way is also all the GUILayout.Label (GUILayout.Button) stuff - because you do not really need to pass in a rect. It is automated.

I hope I could help, if not - sorry.

This is how to add a button,
Not: All GUI related things should be in void OnGUI

 void OnGUI()
        GUI.Button(new Rect(0,0,80,50),"Button"));

The fist zero represents the location horizontally of the button.
The second one is the height.
The 80 represents how long a button is.
The 50 is its Height.
“Button” Is what is displayed inside the button change Button to whatever you want.

BTW this is in C#
If you need help with JavaScript go to
Start Menu > Unity >Unity Documentation
And click scripting Reference