# TextArea

> Make a text area.

## Definition

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

## TextArea(string, GUILayoutOption\[])

Make a text area.

```csharp
public static string TextArea(string text, params GUILayoutOption[] options)
```

### Parameters

**** (\[string]\(https\://learn.microsoft.com/dotnet/api/system.string)): The text to edit.**** (\[GUILayoutOption\[]]\(/engine/6000.0/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.0/script-reference/unityengine/guilayout/width.md), [GUILayout.Height](/engine/6000.0/script-reference/unityengine/guilayout/height.md), [GUILayout.MinWidth](/engine/6000.0/script-reference/unityengine/guilayout/minwidth.md), [GUILayout.MaxWidth](/engine/6000.0/script-reference/unityengine/guilayout/maxwidth.md), [GUILayout.MinHeight](/engine/6000.0/script-reference/unityengine/guilayout/minheight.md), [GUILayout.MaxHeight](/engine/6000.0/script-reference/unityengine/guilayout/maxheight.md), [GUILayout.ExpandWidth](/engine/6000.0/script-reference/unityengine/guilayout/expandwidth.md), [GUILayout.ExpandHeight](/engine/6000.0/script-reference/unityengine/guilayout/expandheight.md).

### Returns

| Type                                                           | Description                   |
| -------------------------------------------------------------- | ----------------------------- |
| [string](https://learn.microsoft.com/dotnet/api/system.string) | The text entered by the user. |

### Remarks

This works just like `<see cref="UnityEngine.GUILayout.TextArea"></see>` with proper responsiveness to actions like **Select all**, **Copy**, **Paste** in the Editor.

For Undo support, see [Undo.RecordObject](/engine/6000.0/script-reference/unityeditor/undo/recordobject.md).

To make the text wrap, set **EditorStyles.textField.wordWrap**.

![EditorGUILayoutTextArea (TextArea)](/api/media?file=/engine/6000.0/media/images/EditorGUILayoutTextArea.png)

*Quick script editor.*

### Examples

```csharp
// Simple script that lets you visualize your scripts in an editor window
// This can be expanded to save your scripts also in the editor window.

using UnityEngine;
using UnityEditor;

public class TextAreaExample : EditorWindow
{
    string text = "Nothing Opened...";
    TextAsset txtAsset;
    Vector2 scroll;

    [MenuItem("Examples/TextArea usage")]
    static void Init()
    {
        TextAreaExample window = (TextAreaExample)GetWindow(typeof(TextAreaExample), true, "EditorGUILayout.TextArea");
        window.Show();
    }

    Object source;

    void OnGUI()
    {
        source = EditorGUILayout.ObjectField(source, typeof(Object), true);
        TextAsset newTxtAsset = (TextAsset)source;

        if (newTxtAsset != txtAsset)
            ReadTextAsset(newTxtAsset);

        scroll = EditorGUILayout.BeginScrollView(scroll, GUILayout.Height(position.height - 30));
        text = EditorGUILayout.TextArea(text);
        EditorGUILayout.EndScrollView();
    }

    void ReadTextAsset(TextAsset txt)
    {
        text = txt.text;
        txtAsset = txt;
    }
}
```

## TextArea(string, GUIStyle, GUILayoutOption\[])

Make a text area.

```csharp
public static string TextArea(string text, GUIStyle style, params GUILayoutOption[] options)
```

### Parameters

**** (\[string]\(https\://learn.microsoft.com/dotnet/api/system.string)): The text to edit.**** (\[GUIStyle]\(/engine/6000.0/script-reference/unityengine/guistyle)): Optional [GUIStyle](/engine/6000.0/script-reference/unityengine/guistyle.md).**** (\[GUILayoutOption\[]]\(/engine/6000.0/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.0/script-reference/unityengine/guilayout/width.md), [GUILayout.Height](/engine/6000.0/script-reference/unityengine/guilayout/height.md), [GUILayout.MinWidth](/engine/6000.0/script-reference/unityengine/guilayout/minwidth.md), [GUILayout.MaxWidth](/engine/6000.0/script-reference/unityengine/guilayout/maxwidth.md), [GUILayout.MinHeight](/engine/6000.0/script-reference/unityengine/guilayout/minheight.md), [GUILayout.MaxHeight](/engine/6000.0/script-reference/unityengine/guilayout/maxheight.md), [GUILayout.ExpandWidth](/engine/6000.0/script-reference/unityengine/guilayout/expandwidth.md), [GUILayout.ExpandHeight](/engine/6000.0/script-reference/unityengine/guilayout/expandheight.md).

### Returns

| Type                                                           | Description                   |
| -------------------------------------------------------------- | ----------------------------- |
| [string](https://learn.microsoft.com/dotnet/api/system.string) | The text entered by the user. |

### Remarks

This works just like `<see cref="UnityEngine.GUILayout.TextArea"></see>` with proper responsiveness to actions like **Select all**, **Copy**, **Paste** in the Editor.

For Undo support, see [Undo.RecordObject](/engine/6000.0/script-reference/unityeditor/undo/recordobject.md).

To make the text wrap, set **EditorStyles.textField.wordWrap**.

![EditorGUILayoutTextArea (TextArea)](/api/media?file=/engine/6000.0/media/images/EditorGUILayoutTextArea.png)

*Quick script editor.*

### Examples

```csharp
// Simple script that lets you visualize your scripts in an editor window
// This can be expanded to save your scripts also in the editor window.

using UnityEngine;
using UnityEditor;

public class TextAreaExample : EditorWindow
{
    string text = "Nothing Opened...";
    TextAsset txtAsset;
    Vector2 scroll;

    [MenuItem("Examples/TextArea usage")]
    static void Init()
    {
        TextAreaExample window = (TextAreaExample)GetWindow(typeof(TextAreaExample), true, "EditorGUILayout.TextArea");
        window.Show();
    }

    Object source;

    void OnGUI()
    {
        source = EditorGUILayout.ObjectField(source, typeof(Object), true);
        TextAsset newTxtAsset = (TextAsset)source;

        if (newTxtAsset != txtAsset)
            ReadTextAsset(newTxtAsset);

        scroll = EditorGUILayout.BeginScrollView(scroll, GUILayout.Height(position.height - 30));
        text = EditorGUILayout.TextArea(text);
        EditorGUILayout.EndScrollView();
    }

    void ReadTextAsset(TextAsset txt)
    {
        text = txt.text;
        txtAsset = txt;
    }
}
```
