# BeginHorizontal

> Begin a horizontal group and get its rect back.

## Definition

* **Type:** Method
* **Namespace:** [UnityEditor](/engine/6000.3/script-reference/unityeditor.md)
* **Assembly:** UnityEditor

## BeginHorizontal(GUILayoutOption\[])

Begin a horizontal group and get its rect back.

```csharp
public static Rect BeginHorizontal(params GUILayoutOption[] options)
```

### Parameters

**** (\[GUILayoutOption\[]]\(/engine/6000.3/script-reference/unityengine/guilayoutoption)): An optional list of layout options that specify extra layout properties. Any values passed in here will override settings defined by the `style`.\
&#x20;Additional Resources: [GUILayout.Width](/engine/6000.3/script-reference/unityengine/guilayout/width.md), [GUILayout.Height](/engine/6000.3/script-reference/unityengine/guilayout/height.md), [GUILayout.MinWidth](/engine/6000.3/script-reference/unityengine/guilayout/minwidth.md), [GUILayout.MaxWidth](/engine/6000.3/script-reference/unityengine/guilayout/maxwidth.md), [GUILayout.MinHeight](/engine/6000.3/script-reference/unityengine/guilayout/minheight.md), [GUILayout.MaxHeight](/engine/6000.3/script-reference/unityengine/guilayout/maxheight.md), [GUILayout.ExpandWidth](/engine/6000.3/script-reference/unityengine/guilayout/expandwidth.md), [GUILayout.ExpandHeight](/engine/6000.3/script-reference/unityengine/guilayout/expandheight.md).

### Returns

| Type                                                        | Description |
| ----------------------------------------------------------- | ----------- |
| [Rect](/engine/6000.3/script-reference/unityengine/rect.md) |             |

### Remarks

This is an extension to [GUILayout.BeginHorizontal](/engine/6000.3/script-reference/unityengine/guilayout/beginhorizontal.md). It can be used for making compound controls.

![BeginEndHorizontalExample (BeginHorizontal)](/api/media?file=/engine/6000.3/media/images/BeginEndHorizontalExample.png)

*Horizontal Compound group.*

### Examples

```csharp
// Create a Horizontal Compound Button

using UnityEngine;
using UnityEditor;

public class BeginEndHorizontalExample : EditorWindow
{
    [MenuItem("Examples/Begin-End Horizontal usage")]
    static void Init()
    {
        BeginEndHorizontalExample window = (BeginEndHorizontalExample)GetWindow(typeof(BeginEndHorizontalExample));
        window.Show();
    }

    void OnGUI()
    {
        Rect r = EditorGUILayout.BeginHorizontal("Button");
        if (GUI.Button(r, GUIContent.none))
            Debug.Log("Go here");
        GUILayout.Label("I'm inside the button");
        GUILayout.Label("So am I");
        EditorGUILayout.EndHorizontal();
    }
}
```

## BeginHorizontal(GUIStyle, GUILayoutOption\[])

Begin a horizontal group and get its rect back.

```csharp
public static Rect BeginHorizontal(GUIStyle style, params GUILayoutOption[] options)
```

### Parameters

**** (\[GUIStyle]\(/engine/6000.3/script-reference/unityengine/guistyle)): Optional [GUIStyle](/engine/6000.3/script-reference/unityengine/guistyle.md).**** (\[GUILayoutOption\[]]\(/engine/6000.3/script-reference/unityengine/guilayoutoption)): An optional list of layout options that specify extra layout properties. Any values passed in here will override settings defined by the `style`.\
&#x20;Additional Resources: [GUILayout.Width](/engine/6000.3/script-reference/unityengine/guilayout/width.md), [GUILayout.Height](/engine/6000.3/script-reference/unityengine/guilayout/height.md), [GUILayout.MinWidth](/engine/6000.3/script-reference/unityengine/guilayout/minwidth.md), [GUILayout.MaxWidth](/engine/6000.3/script-reference/unityengine/guilayout/maxwidth.md), [GUILayout.MinHeight](/engine/6000.3/script-reference/unityengine/guilayout/minheight.md), [GUILayout.MaxHeight](/engine/6000.3/script-reference/unityengine/guilayout/maxheight.md), [GUILayout.ExpandWidth](/engine/6000.3/script-reference/unityengine/guilayout/expandwidth.md), [GUILayout.ExpandHeight](/engine/6000.3/script-reference/unityengine/guilayout/expandheight.md).

### Returns

| Type                                                        | Description |
| ----------------------------------------------------------- | ----------- |
| [Rect](/engine/6000.3/script-reference/unityengine/rect.md) |             |

### Remarks

This is an extension to [GUILayout.BeginHorizontal](/engine/6000.3/script-reference/unityengine/guilayout/beginhorizontal.md). It can be used for making compound controls.

![BeginEndHorizontalExample (BeginHorizontal)](/api/media?file=/engine/6000.3/media/images/BeginEndHorizontalExample.png)

*Horizontal Compound group.*

### Examples

```csharp
// Create a Horizontal Compound Button

using UnityEngine;
using UnityEditor;

public class BeginEndHorizontalExample : EditorWindow
{
    [MenuItem("Examples/Begin-End Horizontal usage")]
    static void Init()
    {
        BeginEndHorizontalExample window = (BeginEndHorizontalExample)GetWindow(typeof(BeginEndHorizontalExample));
        window.Show();
    }

    void OnGUI()
    {
        Rect r = EditorGUILayout.BeginHorizontal("Button");
        if (GUI.Button(r, GUIContent.none))
            Debug.Log("Go here");
        GUILayout.Label("I'm inside the button");
        GUILayout.Label("So am I");
        EditorGUILayout.EndHorizontal();
    }
}
```
