# GUILayout.AreaScope

> Disposable helper class for managing GUILayout.BeginArea / GUILayout.EndArea.

## Definition

* **Type:** Class
* **Namespace:** [UnityEngine](/engine/6000.0/script-reference/unityengine.md)
* **Assembly:** UnityEngine.IMGUIModule
* **Inherits from:** Scope
* **Implements:** [IDisposable](https://learn.microsoft.com/dotnet/api/system.idisposable)

```csharp
public class GUILayout.AreaScope : GUI.Scope, IDisposable
```

## Remarks

[GUILayout.BeginArea](/engine/6000.0/script-reference/unityengine/guilayout/beginarea.md) is called at construction, and [GUILayout.EndArea](/engine/6000.0/script-reference/unityengine/guilayout/endarea.md) is called when the instance is disposed. By default, any GUI controls made using GUILayout are placed in the top-left corner of the screen. If you want to place a series of automatically laid out controls in an arbitrary area, use [GUILayout.BeginArea](/engine/6000.0/script-reference/unityengine/guilayout/beginarea.md) to define a new area for the automatic layouting system to use.

Additional Resources: [GUILayout.BeginArea](/engine/6000.0/script-reference/unityengine/guilayout/beginarea.md), [GUILayout.EndArea](/engine/6000.0/script-reference/unityengine/guilayout/endarea.md)

![GUILayoutArea (GUILayout.AreaScope)](/api/media?file=/engine/6000.0/media/images/GUILayoutArea.png)

*Explained Area of the example.*

## Examples

```csharp
using UnityEngine;

public class ExampleClass : MonoBehaviour
{
    void OnGUI()
    {
        using (var areaScope = new GUILayout.AreaScope(new Rect(10, 10, 100, 100)))
        {
            GUILayout.Button("Click me");
            GUILayout.Button("Or me");
        }
    }
}
```

## Constructors

| Constructor                                                                                                                                                                              | Description                                              |
| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------- |
| [AreaScope(UnityEngine.Rect)](/engine/6000.0/script-reference/unityengine/guilayout/areascope/ctor.md#areascope\(rect\))                                                                 | Create a new AreaScope and begin the corresponding Area. |
| [AreaScope(UnityEngine.Rect,System.String)](/engine/6000.0/script-reference/unityengine/guilayout/areascope/ctor.md#areascope\(rect-string\))                                            | Create a new AreaScope and begin the corresponding Area. |
| [AreaScope(UnityEngine.Rect,System.String,UnityEngine.GUIStyle)](/engine/6000.0/script-reference/unityengine/guilayout/areascope/ctor.md#areascope\(rect-string-guistyle\))              | Create a new AreaScope and begin the corresponding Area. |
| [AreaScope(UnityEngine.Rect,UnityEngine.GUIContent)](/engine/6000.0/script-reference/unityengine/guilayout/areascope/ctor.md#areascope\(rect-guicontent\))                               | Create a new AreaScope and begin the corresponding Area. |
| [AreaScope(UnityEngine.Rect,UnityEngine.GUIContent,UnityEngine.GUIStyle)](/engine/6000.0/script-reference/unityengine/guilayout/areascope/ctor.md#areascope\(rect-guicontent-guistyle\)) | Create a new AreaScope and begin the corresponding Area. |
| [AreaScope(UnityEngine.Rect,UnityEngine.Texture)](/engine/6000.0/script-reference/unityengine/guilayout/areascope/ctor.md#areascope\(rect-texture\))                                     | Create a new AreaScope and begin the corresponding Area. |
| [AreaScope(UnityEngine.Rect,UnityEngine.Texture,UnityEngine.GUIStyle)](/engine/6000.0/script-reference/unityengine/guilayout/areascope/ctor.md#areascope\(rect-texture-guistyle\))       | Create a new AreaScope and begin the corresponding Area. |
