# TextGenerator

> Class that can be used to generate text for rendering.

## Definition

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

```csharp
public sealed class TextGenerator : IDisposable
```

## Remarks

Caches vertices, character info, and line info for memory friendlyness.

## Examples

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

public class ExampleClass : MonoBehaviour
{
    public Font font;
    void Start()
    {
        TextGenerationSettings settings = new TextGenerationSettings();
        settings.textAnchor = TextAnchor.MiddleCenter;
        settings.color = Color.red;
        settings.generationExtents = new Vector2(500.0F, 200.0F);
        settings.pivot = Vector2.zero;
        settings.richText = true;
        settings.font = font;
        settings.fontSize = 32;
        settings.fontStyle = FontStyle.Normal;
        settings.verticalOverflow = VerticalWrapMode.Overflow;
        TextGenerator generator = new TextGenerator();
        generator.Populate("I am a string", settings);
        Debug.Log("I generated: " + generator.vertexCount + " verts!");
    }
}
```

## Constructors

| Constructor                                                                                                           | Description             |
| --------------------------------------------------------------------------------------------------------------------- | ----------------------- |
| [TextGenerator()](/engine/6000.7/script-reference/unityengine/textgenerator/ctor.md#textgenerator\(\))                | Create a TextGenerator. |
| [TextGenerator(System.Int32)](/engine/6000.7/script-reference/unityengine/textgenerator/ctor.md#textgenerator\(int\)) | Create a TextGenerator. |

## Properties

| Property                                                                                                      | Description                                                                              |
| ------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- |
| [characterCount](/engine/6000.7/script-reference/unityengine/textgenerator/charactercount.md)                 | The number of characters that have been generated.                                       |
| [characterCountVisible](/engine/6000.7/script-reference/unityengine/textgenerator/charactercountvisible.md)   | The number of characters that have been generated and are included in the visible lines. |
| [characters](/engine/6000.7/script-reference/unityengine/textgenerator/characters.md)                         | Array of generated characters.                                                           |
| [fontSizeUsedForBestFit](/engine/6000.7/script-reference/unityengine/textgenerator/fontsizeusedforbestfit.md) | The size of the font that was found if using best fit mode.                              |
| [lineCount](/engine/6000.7/script-reference/unityengine/textgenerator/linecount.md)                           | Number of text lines generated.                                                          |
| [lines](/engine/6000.7/script-reference/unityengine/textgenerator/lines.md)                                   | Information about each generated text line.                                              |
| [rectExtents](/engine/6000.7/script-reference/unityengine/textgenerator/rectextents.md)                       | Extents of the generated text in rect format.                                            |
| [vertexCount](/engine/6000.7/script-reference/unityengine/textgenerator/vertexcount.md)                       | Number of vertices generated.                                                            |
| [verts](/engine/6000.7/script-reference/unityengine/textgenerator/verts.md)                                   | Array of generated vertices.                                                             |

## Methods

| Method                                                                                                | Description                                                                                                  |
| ----------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------ |
| [GetCharacters](/engine/6000.7/script-reference/unityengine/textgenerator/getcharacters.md)           | Populate the given List with UICharInfo.                                                                     |
| [GetCharactersArray](/engine/6000.7/script-reference/unityengine/textgenerator/getcharactersarray.md) | Returns the current UICharInfo.                                                                              |
| [GetLines](/engine/6000.7/script-reference/unityengine/textgenerator/getlines.md)                     | Populate the given list with [UILineInfo](/engine/6000.7/script-reference/unityengine/uilineinfo.md).        |
| [GetLinesArray](/engine/6000.7/script-reference/unityengine/textgenerator/getlinesarray.md)           | Returns the current UILineInfo.                                                                              |
| [GetPreferredHeight](/engine/6000.7/script-reference/unityengine/textgenerator/getpreferredheight.md) | Given a string and settings, returns the preferred height for a container that would hold this text.         |
| [GetPreferredWidth](/engine/6000.7/script-reference/unityengine/textgenerator/getpreferredwidth.md)   | Given a string and settings, returns the preferred width for a container that would hold this text.          |
| [GetVertices](/engine/6000.7/script-reference/unityengine/textgenerator/getvertices.md)               | Populate the given list with generated Vertices.                                                             |
| [GetVerticesArray](/engine/6000.7/script-reference/unityengine/textgenerator/getverticesarray.md)     | Returns the current UIVertex array.                                                                          |
| [Invalidate](/engine/6000.7/script-reference/unityengine/textgenerator/invalidate.md)                 | Mark the text generator as invalid. This will force a full text generation the next time Populate is called. |
| [Populate](/engine/6000.7/script-reference/unityengine/textgenerator/populate.md)                     | Will generate the vertices and other data for the given string with the given settings.                      |
| [PopulateWithErrors](/engine/6000.7/script-reference/unityengine/textgenerator/populatewitherrors.md) | Will generate the vertices and other data for the given string with the given settings.                      |
