# BeginScrollView

> Begin an automatically laid out scrollview.

## Definition

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

## BeginScrollView(Vector2, GUILayoutOption\[])

Begin an automatically laid out scrollview.

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

### Parameters

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

### Returns

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

### Remarks

Automatically laid out scrollviews will take whatever content you have inside them and display normally. If it doesn't fit, scrollbars will appear. A call to BeginScrollView must always be matched with a call to EndScrollView.

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

Scroll View in the Game View\..

### Examples

```csharp
using UnityEngine;

public class ExampleScript : MonoBehaviour
{
    // The variable to control where the scrollview 'looks' into its child elements.
    Vector2 scrollPosition;

    // The string to display inside the scrollview. 2 buttons below add & clear this string.
    string longString = "This is a long-ish string";

    void OnGUI()
    {
        // Begin a scroll view. All rects are calculated automatically -
        // it will use up any available screen space and make sure contents flow correctly.
        // This is kept small with the last two parameters to force scrollbars to appear.
        scrollPosition = GUILayout.BeginScrollView(
            scrollPosition, GUILayout.Width(100), GUILayout.Height(100));

        // We just add a single label to go inside the scroll view. Note how the
        // scrollbars will work correctly with wordwrap.
        GUILayout.Label(longString);

        // Add a button to clear the string. This is inside the scroll area, so it
        // will be scrolled as well. Note how the button becomes narrower to make room
        // for the vertical scrollbar
        if (GUILayout.Button("Clear"))
            longString = "";

        // End the scrollview we began above.
        GUILayout.EndScrollView();

        // Now we add a button outside the scrollview - this will be shown below
        // the scrolling area.
        if (GUILayout.Button("Add More Text"))
            longString += "\nHere is another line";
    }
}
```

## 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.7/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.7/script-reference/unityengine/guilayoutoption)):&#x20;

### Returns

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

### Remarks

Automatically laid out scrollviews will take whatever content you have inside them and display normally. If it doesn't fit, scrollbars will appear. A call to BeginScrollView must always be matched with a call to EndScrollView.

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

Scroll View in the Game View\..

### Examples

```csharp
using UnityEngine;

public class ExampleScript : MonoBehaviour
{
    // The variable to control where the scrollview 'looks' into its child elements.
    Vector2 scrollPosition;

    // The string to display inside the scrollview. 2 buttons below add & clear this string.
    string longString = "This is a long-ish string";

    void OnGUI()
    {
        // Begin a scroll view. All rects are calculated automatically -
        // it will use up any available screen space and make sure contents flow correctly.
        // This is kept small with the last two parameters to force scrollbars to appear.
        scrollPosition = GUILayout.BeginScrollView(
            scrollPosition, GUILayout.Width(100), GUILayout.Height(100));

        // We just add a single label to go inside the scroll view. Note how the
        // scrollbars will work correctly with wordwrap.
        GUILayout.Label(longString);

        // Add a button to clear the string. This is inside the scroll area, so it
        // will be scrolled as well. Note how the button becomes narrower to make room
        // for the vertical scrollbar
        if (GUILayout.Button("Clear"))
            longString = "";

        // End the scrollview we began above.
        GUILayout.EndScrollView();

        // Now we add a button outside the scrollview - this will be shown below
        // the scrolling area.
        if (GUILayout.Button("Add More Text"))
            longString += "\nHere is another line";
    }
}
```

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

### Returns

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

### Remarks

Automatically laid out scrollviews will take whatever content you have inside them and display normally. If it doesn't fit, scrollbars will appear. A call to BeginScrollView must always be matched with a call to EndScrollView.

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

Scroll View in the Game View\..

### Examples

```csharp
using UnityEngine;

public class ExampleScript : MonoBehaviour
{
    // The variable to control where the scrollview 'looks' into its child elements.
    Vector2 scrollPosition;

    // The string to display inside the scrollview. 2 buttons below add & clear this string.
    string longString = "This is a long-ish string";

    void OnGUI()
    {
        // Begin a scroll view. All rects are calculated automatically -
        // it will use up any available screen space and make sure contents flow correctly.
        // This is kept small with the last two parameters to force scrollbars to appear.
        scrollPosition = GUILayout.BeginScrollView(
            scrollPosition, GUILayout.Width(100), GUILayout.Height(100));

        // We just add a single label to go inside the scroll view. Note how the
        // scrollbars will work correctly with wordwrap.
        GUILayout.Label(longString);

        // Add a button to clear the string. This is inside the scroll area, so it
        // will be scrolled as well. Note how the button becomes narrower to make room
        // for the vertical scrollbar
        if (GUILayout.Button("Clear"))
            longString = "";

        // End the scrollview we began above.
        GUILayout.EndScrollView();

        // Now we add a button outside the scrollview - this will be shown below
        // the scrolling area.
        if (GUILayout.Button("Add More Text"))
            longString += "\nHere is another line";
    }
}
```

## BeginScrollView(Vector2, GUIStyle)

Begin an automatically laid out scrollview.

```csharp
public static Vector2 BeginScrollView(Vector2 scrollPosition, GUIStyle style)
```

### Parameters

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

### Returns

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

### Remarks

Automatically laid out scrollviews will take whatever content you have inside them and display normally. If it doesn't fit, scrollbars will appear. A call to BeginScrollView must always be matched with a call to EndScrollView.

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

Scroll View in the Game View\..

### Examples

```csharp
using UnityEngine;

public class ExampleScript : MonoBehaviour
{
    // The variable to control where the scrollview 'looks' into its child elements.
    Vector2 scrollPosition;

    // The string to display inside the scrollview. 2 buttons below add & clear this string.
    string longString = "This is a long-ish string";

    void OnGUI()
    {
        // Begin a scroll view. All rects are calculated automatically -
        // it will use up any available screen space and make sure contents flow correctly.
        // This is kept small with the last two parameters to force scrollbars to appear.
        scrollPosition = GUILayout.BeginScrollView(
            scrollPosition, GUILayout.Width(100), GUILayout.Height(100));

        // We just add a single label to go inside the scroll view. Note how the
        // scrollbars will work correctly with wordwrap.
        GUILayout.Label(longString);

        // Add a button to clear the string. This is inside the scroll area, so it
        // will be scrolled as well. Note how the button becomes narrower to make room
        // for the vertical scrollbar
        if (GUILayout.Button("Clear"))
            longString = "";

        // End the scrollview we began above.
        GUILayout.EndScrollView();

        // Now we add a button outside the scrollview - this will be shown below
        // the scrolling area.
        if (GUILayout.Button("Add More Text"))
            longString += "\nHere is another line";
    }
}
```

## 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.7/script-reference/unityengine/vector2)): The position to use display.**** (\[GUIStyle]\(/engine/6000.7/script-reference/unityengine/guistyle)): **** (\[GUILayoutOption\[]]\(/engine/6000.7/script-reference/unityengine/guilayoutoption)):&#x20;

### Returns

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

### Remarks

Automatically laid out scrollviews will take whatever content you have inside them and display normally. If it doesn't fit, scrollbars will appear. A call to BeginScrollView must always be matched with a call to EndScrollView.

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

Scroll View in the Game View\..

### Examples

```csharp
using UnityEngine;

public class ExampleScript : MonoBehaviour
{
    // The variable to control where the scrollview 'looks' into its child elements.
    Vector2 scrollPosition;

    // The string to display inside the scrollview. 2 buttons below add & clear this string.
    string longString = "This is a long-ish string";

    void OnGUI()
    {
        // Begin a scroll view. All rects are calculated automatically -
        // it will use up any available screen space and make sure contents flow correctly.
        // This is kept small with the last two parameters to force scrollbars to appear.
        scrollPosition = GUILayout.BeginScrollView(
            scrollPosition, GUILayout.Width(100), GUILayout.Height(100));

        // We just add a single label to go inside the scroll view. Note how the
        // scrollbars will work correctly with wordwrap.
        GUILayout.Label(longString);

        // Add a button to clear the string. This is inside the scroll area, so it
        // will be scrolled as well. Note how the button becomes narrower to make room
        // for the vertical scrollbar
        if (GUILayout.Button("Clear"))
            longString = "";

        // End the scrollview we began above.
        GUILayout.EndScrollView();

        // Now we add a button outside the scrollview - this will be shown below
        // the scrolling area.
        if (GUILayout.Button("Add More Text"))
            longString += "\nHere is another line";
    }
}
```

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

Begin an automatically laid out scrollview.

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

### Parameters

**** (\[Vector2]\(/engine/6000.7/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.7/script-reference/unityengine/guistyle)): Optional [GUIStyle](/engine/6000.7/script-reference/unityengine/guistyle.md) to use for the horizontal scrollbar. If left out, the `horizontalScrollbar` style from the current [GUISkin](/engine/6000.7/script-reference/unityengine/guiskin.md) is used.**** (\[GUIStyle]\(/engine/6000.7/script-reference/unityengine/guistyle)): Optional [GUIStyle](/engine/6000.7/script-reference/unityengine/guistyle.md) to use for the vertical scrollbar. If left out, the `verticalScrollbar` style from the current [GUISkin](/engine/6000.7/script-reference/unityengine/guiskin.md) is used.**** (\[GUILayoutOption\[]]\(/engine/6000.7/script-reference/unityengine/guilayoutoption)):&#x20;

### Returns

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

### Remarks

Automatically laid out scrollviews will take whatever content you have inside them and display normally. If it doesn't fit, scrollbars will appear. A call to BeginScrollView must always be matched with a call to EndScrollView.

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

Scroll View in the Game View\..

### Examples

```csharp
using UnityEngine;

public class ExampleScript : MonoBehaviour
{
    // The variable to control where the scrollview 'looks' into its child elements.
    Vector2 scrollPosition;

    // The string to display inside the scrollview. 2 buttons below add & clear this string.
    string longString = "This is a long-ish string";

    void OnGUI()
    {
        // Begin a scroll view. All rects are calculated automatically -
        // it will use up any available screen space and make sure contents flow correctly.
        // This is kept small with the last two parameters to force scrollbars to appear.
        scrollPosition = GUILayout.BeginScrollView(
            scrollPosition, GUILayout.Width(100), GUILayout.Height(100));

        // We just add a single label to go inside the scroll view. Note how the
        // scrollbars will work correctly with wordwrap.
        GUILayout.Label(longString);

        // Add a button to clear the string. This is inside the scroll area, so it
        // will be scrolled as well. Note how the button becomes narrower to make room
        // for the vertical scrollbar
        if (GUILayout.Button("Clear"))
            longString = "";

        // End the scrollview we began above.
        GUILayout.EndScrollView();

        // Now we add a button outside the scrollview - this will be shown below
        // the scrolling area.
        if (GUILayout.Button("Add More Text"))
            longString += "\nHere is another line";
    }
}
```

## 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.7/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.7/script-reference/unityengine/guistyle)): Optional [GUIStyle](/engine/6000.7/script-reference/unityengine/guistyle.md) to use for the horizontal scrollbar. If left out, the `horizontalScrollbar` style from the current [GUISkin](/engine/6000.7/script-reference/unityengine/guiskin.md) is used.**** (\[GUIStyle]\(/engine/6000.7/script-reference/unityengine/guistyle)): Optional [GUIStyle](/engine/6000.7/script-reference/unityengine/guistyle.md) to use for the vertical scrollbar. If left out, the `verticalScrollbar` style from the current [GUISkin](/engine/6000.7/script-reference/unityengine/guiskin.md) is used.**** (\[GUIStyle]\(/engine/6000.7/script-reference/unityengine/guistyle)): **** (\[GUILayoutOption\[]]\(/engine/6000.7/script-reference/unityengine/guilayoutoption)):&#x20;

### Returns

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

### Remarks

Automatically laid out scrollviews will take whatever content you have inside them and display normally. If it doesn't fit, scrollbars will appear. A call to BeginScrollView must always be matched with a call to EndScrollView.

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

Scroll View in the Game View\..

### Examples

```csharp
using UnityEngine;

public class ExampleScript : MonoBehaviour
{
    // The variable to control where the scrollview 'looks' into its child elements.
    Vector2 scrollPosition;

    // The string to display inside the scrollview. 2 buttons below add & clear this string.
    string longString = "This is a long-ish string";

    void OnGUI()
    {
        // Begin a scroll view. All rects are calculated automatically -
        // it will use up any available screen space and make sure contents flow correctly.
        // This is kept small with the last two parameters to force scrollbars to appear.
        scrollPosition = GUILayout.BeginScrollView(
            scrollPosition, GUILayout.Width(100), GUILayout.Height(100));

        // We just add a single label to go inside the scroll view. Note how the
        // scrollbars will work correctly with wordwrap.
        GUILayout.Label(longString);

        // Add a button to clear the string. This is inside the scroll area, so it
        // will be scrolled as well. Note how the button becomes narrower to make room
        // for the vertical scrollbar
        if (GUILayout.Button("Clear"))
            longString = "";

        // End the scrollview we began above.
        GUILayout.EndScrollView();

        // Now we add a button outside the scrollview - this will be shown below
        // the scrolling area.
        if (GUILayout.Button("Add More Text"))
            longString += "\nHere is another line";
    }
}
```
