Как проявлять текст по очереди в массиве, Unity2D, C#

Я имею данный скрипт, сразу скажу что вот данная строка отвечает за построчное появление одного текста:

IEnumerator showText(string text)
{
    int i = 0;
    while (i <= text.Length)
    {
        textUI.text = text.Substring(0, i);
        i++;
    
        yield return new WaitForSeconds(0.05f);
    }
}

Дальше вот сам скрипт:

using System.Collections;
using UnityEngine;
using UnityEngine.UI;

public class TypeText : MonoBehaviour
{
    private Text textUI;
    [TextArea(3, 10)]
    public string[] text;
    int ColvoText;

    void Start()
    {
        textUI = GetComponent<Text>();
        StartCoroutine("showText", text);
    }

    void Update() {
    }

    IEnumerator showText(string text)
    {
        int i = 0;
        while (i <= text.Length)
        {
            textUI.text = text.Substring(0, i);
            i++;
        
            yield return new WaitForSeconds(0.05f);
        }
    }
}

Опять же повторюсь, я хочу сделать появление текстов с очередью, то есть сначала один текст спустя 5 секунд другой и тд.


Ответы (1 шт):

Автор решения: aepot

Строка это массив символов, массив строк выглядит как массив массивов. Значит нужен цикл в цикле.

IEnumerator showText(string[] lines)
{
    foreach (string line in lines)
    {
        for (int i = 0; i < line.Length; i++)
        {
            textUI.text = line.Substring(0, i);

            yield return new WaitForSeconds(0.05f);
        }
        yield return new WaitForSeconds(5f);
    }
}
→ Ссылка