# BeginScrollView

> Begin an automatically laid out scrollview.

## Definition

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

## BeginScrollView(Vector2, GUILayoutOption\[])

Begin an automatically laid out scrollview.

```csharp
public static Vector2 BeginScrollView(Vector2 scrollPosition, params GUILayoutOption[] options)
```

### Parameters

**** (\[Vector2]\(/engine/6000.3/script-reference/unityengine/vector2)): The position to use display.**** (\[GUILayoutOption\[]]\(/engine/6000.3/script-reference/unityengine/guilayoutoption)):&#x20;

### Returns

| Type                                                              | Description                                                                                         |
| ----------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- |
| [Vector2](/engine/6000.3/script-reference/unityengine/vector2.md) | The modified scrollPosition. Feed this back into the variable you pass in, as shown in the example. |

### Remarks

These work just like [GUILayout.BeginScrollView](/engine/6000.3/script-reference/unityengine/guilayout/beginscrollview.md) but feel more application-like and should be used in the editor

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

*Label inside a scroll view.*

### Examples

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

public class BeginScrollViewExample : EditorWindow
{
    Vector2 scrollPos;
    string t = "This is a string inside a Scroll view!";

    [MenuItem("Examples/Begin Scroll View Example")]
    static void Init()
    {
        BeginScrollViewExample window = (BeginScrollViewExample)EditorWindow.GetWindow(typeof(BeginScrollViewExample), true, "BeginEndScrollViewExample");
        window.Show();
    }

    void OnGUI()
    {
        EditorGUILayout.BeginHorizontal();
        scrollPos =
            EditorGUILayout.BeginScrollView(scrollPos, GUILayout.Width(100), GUILayout.Height(100));
        GUILayout.Label(t);
        EditorGUILayout.EndScrollView();
        if (GUILayout.Button("Add More Text", GUILayout.Width(100), GUILayout.Height(100)))
            t += " \nAnd this is more text!";
        EditorGUILayout.EndHorizontal();
        if (GUILayout.Button("Clear"))
            t = "";
    }
}
```

## BeginScrollView(Vector2, bool, bool, GUILayoutOption\[])

Begin an automatically laid out scrollview.

```csharp
public static Vector2 BeginScrollView(Vector2 scrollPosition, bool alwaysShowHorizontal, bool alwaysShowVertical, params GUILayoutOption[] options)
```

### Parameters

**** (\[Vector2]\(/engine/6000.3/script-reference/unityengine/vector2)): The position to use display.**** (\[bool]\(https\://learn.microsoft.com/dotnet/api/system.boolean)): Optional parameter to always show the horizontal scrollbar. If false or left out, it is only shown when the content inside the ScrollView is wider than the scrollview itself.**** (\[bool]\(https\://learn.microsoft.com/dotnet/api/system.boolean)): Optional parameter to always show the vertical scrollbar. If false or left out, it is only shown when content inside the ScrollView is taller than the scrollview itself.**** (\[GUILayoutOption\[]]\(/engine/6000.3/script-reference/unityengine/guilayoutoption)):&#x20;

### Returns

| Type                                                              | Description                                                                                         |
| ----------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- |
| [Vector2](/engine/6000.3/script-reference/unityengine/vector2.md) | The modified scrollPosition. Feed this back into the variable you pass in, as shown in the example. |

### Remarks

These work just like [GUILayout.BeginScrollView](/engine/6000.3/script-reference/unityengine/guilayout/beginscrollview.md) but feel more application-like and should be used in the editor

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

*Label inside a scroll view.*

### Examples

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

public class BeginScrollViewExample : EditorWindow
{
    Vector2 scrollPos;
    string t = "This is a string inside a Scroll view!";

    [MenuItem("Examples/Begin Scroll View Example")]
    static void Init()
    {
        BeginScrollViewExample window = (BeginScrollViewExample)EditorWindow.GetWindow(typeof(BeginScrollViewExample), true, "BeginEndScrollViewExample");
        window.Show();
    }

    void OnGUI()
    {
        EditorGUILayout.BeginHorizontal();
        scrollPos =
            EditorGUILayout.BeginScrollView(scrollPos, GUILayout.Width(100), GUILayout.Height(100));
        GUILayout.Label(t);
        EditorGUILayout.EndScrollView();
        if (GUILayout.Button("Add More Text", GUILayout.Width(100), GUILayout.Height(100)))
            t += " \nAnd this is more text!";
        EditorGUILayout.EndHorizontal();
        if (GUILayout.Button("Clear"))
            t = "";
    }
}
```

## BeginScrollView(Vector2, GUIStyle, GUIStyle, GUILayoutOption\[])

Begin an automatically laid out scrollview.

```csharp
public static Vector2 BeginScrollView(Vector2 scrollPosition, GUIStyle horizontalScrollbar, GUIStyle verticalScrollbar, params GUILayoutOption[] options)
```

### Parameters

**** (\[Vector2]\(/engine/6000.3/script-reference/unityengine/vector2)): The position to use display.**** (\[GUIStyle]\(/engine/6000.3/script-reference/unityengine/guistyle)): Optional [GUIStyle](/engine/6000.3/script-reference/unityengine/guistyle.md) to use for the horizontal scrollbar. If left out, the `horizontalScrollbar` style from the current [GUISkin](/engine/6000.3/script-reference/unityengine/guiskin.md) is used.**** (\[GUIStyle]\(/engine/6000.3/script-reference/unityengine/guistyle)): Optional [GUIStyle](/engine/6000.3/script-reference/unityengine/guistyle.md) to use for the vertical scrollbar. If left out, the `verticalScrollbar` style from the current [GUISkin](/engine/6000.3/script-reference/unityengine/guiskin.md) is used.**** (\[GUILayoutOption\[]]\(/engine/6000.3/script-reference/unityengine/guilayoutoption)):&#x20;

### Returns

| Type                                                              | Description                                                                                         |
| ----------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- |
| [Vector2](/engine/6000.3/script-reference/unityengine/vector2.md) | The modified scrollPosition. Feed this back into the variable you pass in, as shown in the example. |

### Remarks

These work just like [GUILayout.BeginScrollView](/engine/6000.3/script-reference/unityengine/guilayout/beginscrollview.md) but feel more application-like and should be used in the editor

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

*Label inside a scroll view.*

### Examples

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

public class BeginScrollViewExample : EditorWindow
{
    Vector2 scrollPos;
    string t = "This is a string inside a Scroll view!";

    [MenuItem("Examples/Begin Scroll View Example")]
    static void Init()
    {
        BeginScrollViewExample window = (BeginScrollViewExample)EditorWindow.GetWindow(typeof(BeginScrollViewExample), true, "BeginEndScrollViewExample");
        window.Show();
    }

    void OnGUI()
    {
        EditorGUILayout.BeginHorizontal();
        scrollPos =
            EditorGUILayout.BeginScrollView(scrollPos, GUILayout.Width(100), GUILayout.Height(100));
        GUILayout.Label(t);
        EditorGUILayout.EndScrollView();
        if (GUILayout.Button("Add More Text", GUILayout.Width(100), GUILayout.Height(100)))
            t += " \nAnd this is more text!";
        EditorGUILayout.EndHorizontal();
        if (GUILayout.Button("Clear"))
            t = "";
    }
}
```

## BeginScrollView(Vector2, GUIStyle, GUILayoutOption\[])

Begin an automatically laid out scrollview.

```csharp
public static Vector2 BeginScrollView(Vector2 scrollPosition, GUIStyle style, params GUILayoutOption[] options)
```

### Parameters

**** (\[Vector2]\(/engine/6000.3/script-reference/unityengine/vector2)): The position to use display.**** (\[GUIStyle]\(/engine/6000.3/script-reference/unityengine/guistyle)): Optional [GUIStyle](/engine/6000.3/script-reference/unityengine/guistyle.md) to use for the background.**** (\[GUILayoutOption\[]]\(/engine/6000.3/script-reference/unityengine/guilayoutoption)):&#x20;

### Returns

| Type                                                              | Description                                                                                         |
| ----------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- |
| [Vector2](/engine/6000.3/script-reference/unityengine/vector2.md) | The modified scrollPosition. Feed this back into the variable you pass in, as shown in the example. |

### Remarks

These work just like [GUILayout.BeginScrollView](/engine/6000.3/script-reference/unityengine/guilayout/beginscrollview.md) but feel more application-like and should be used in the editor

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

*Label inside a scroll view.*

### Examples

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

public class BeginScrollViewExample : EditorWindow
{
    Vector2 scrollPos;
    string t = "This is a string inside a Scroll view!";

    [MenuItem("Examples/Begin Scroll View Example")]
    static void Init()
    {
        BeginScrollViewExample window = (BeginScrollViewExample)EditorWindow.GetWindow(typeof(BeginScrollViewExample), true, "BeginEndScrollViewExample");
        window.Show();
    }

    void OnGUI()
    {
        EditorGUILayout.BeginHorizontal();
        scrollPos =
            EditorGUILayout.BeginScrollView(scrollPos, GUILayout.Width(100), GUILayout.Height(100));
        GUILayout.Label(t);
        EditorGUILayout.EndScrollView();
        if (GUILayout.Button("Add More Text", GUILayout.Width(100), GUILayout.Height(100)))
            t += " \nAnd this is more text!";
        EditorGUILayout.EndHorizontal();
        if (GUILayout.Button("Clear"))
            t = "";
    }
}
```

## BeginScrollView(Vector2, bool, bool, GUIStyle, GUIStyle, GUIStyle, GUILayoutOption\[])

Begin an automatically laid out scrollview.

```csharp
public static Vector2 BeginScrollView(Vector2 scrollPosition, bool alwaysShowHorizontal, bool alwaysShowVertical, GUIStyle horizontalScrollbar, GUIStyle verticalScrollbar, GUIStyle background, params GUILayoutOption[] options)
```

### Parameters

**** (\[Vector2]\(/engine/6000.3/script-reference/unityengine/vector2)): The position to use display.**** (\[bool]\(https\://learn.microsoft.com/dotnet/api/system.boolean)): Optional parameter to always show the horizontal scrollbar. If false or left out, it is only shown when the content inside the ScrollView is wider than the scrollview itself.**** (\[bool]\(https\://learn.microsoft.com/dotnet/api/system.boolean)): Optional parameter to always show the vertical scrollbar. If false or left out, it is only shown when content inside the ScrollView is taller than the scrollview itself.**** (\[GUIStyle]\(/engine/6000.3/script-reference/unityengine/guistyle)): Optional [GUIStyle](/engine/6000.3/script-reference/unityengine/guistyle.md) to use for the horizontal scrollbar. If left out, the `horizontalScrollbar` style from the current [GUISkin](/engine/6000.3/script-reference/unityengine/guiskin.md) is used.**** (\[GUIStyle]\(/engine/6000.3/script-reference/unityengine/guistyle)): Optional [GUIStyle](/engine/6000.3/script-reference/unityengine/guistyle.md) to use for the vertical scrollbar. If left out, the `verticalScrollbar` style from the current [GUISkin](/engine/6000.3/script-reference/unityengine/guiskin.md) is used.**** (\[GUIStyle]\(/engine/6000.3/script-reference/unityengine/guistyle)): Optional [GUIStyle](/engine/6000.3/script-reference/unityengine/guistyle.md) to use for the background.**** (\[GUILayoutOption\[]]\(/engine/6000.3/script-reference/unityengine/guilayoutoption)):&#x20;

### Returns

| Type                                                              | Description                                                                                         |
| ----------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- |
| [Vector2](/engine/6000.3/script-reference/unityengine/vector2.md) | The modified scrollPosition. Feed this back into the variable you pass in, as shown in the example. |

### Remarks

These work just like [GUILayout.BeginScrollView](/engine/6000.3/script-reference/unityengine/guilayout/beginscrollview.md) but feel more application-like and should be used in the editor

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

*Label inside a scroll view.*

### Examples

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

public class BeginScrollViewExample : EditorWindow
{
    Vector2 scrollPos;
    string t = "This is a string inside a Scroll view!";

    [MenuItem("Examples/Begin Scroll View Example")]
    static void Init()
    {
        BeginScrollViewExample window = (BeginScrollViewExample)EditorWindow.GetWindow(typeof(BeginScrollViewExample), true, "BeginEndScrollViewExample");
        window.Show();
    }

    void OnGUI()
    {
        EditorGUILayout.BeginHorizontal();
        scrollPos =
            EditorGUILayout.BeginScrollView(scrollPos, GUILayout.Width(100), GUILayout.Height(100));
        GUILayout.Label(t);
        EditorGUILayout.EndScrollView();
        if (GUILayout.Button("Add More Text", GUILayout.Width(100), GUILayout.Height(100)))
            t += " \nAnd this is more text!";
        EditorGUILayout.EndHorizontal();
        if (GUILayout.Button("Clear"))
            t = "";
    }
}
```
