# OnGUI()

> OnGUI is called for rendering and handling GUI events.

## Definition

* **Type:** Method
* **Namespace:** [UnityEngine](/engine/6000.7/script-reference/unityengine.md)

```csharp
public void OnGUI()
```

### Remarks

OnGUI is the only function that can implement the ["Immediate Mode" GUI (IMGUI)](/engine/6000.7/manual/uitoolkits/ui-imgui/guiscripting-guide.md) system for rendering and handling GUI events. Your OnGUI implementation might be called several times per frame (one call per event). For more information on GUI events see the [Event](/engine/6000.7/script-reference/unityengine/event.md) reference. If the MonoBehaviour's enabled property is set to false, OnGUI() will not be called.

```csharp
using UnityEngine;
using System.Collections;

public class ExampleClass : MonoBehaviour
{
    void OnGUI()
    {
        if (GUI.Button(new Rect(10, 10, 150, 100), "I am a button"))
        {
            print("You clicked the button!");
        }
    }
}
```

For more information, see the [GUI Scripting Guide](/engine/6000.7/manual/uitoolkits/ui-imgui/guiscripting-guide.md).
