Untitled

mail@pastecode.io avatar
unknown
csharp
2 years ago
942 B
17
Indexable
Never
var lengthToDisplay = (Time.realtimeSinceStartup - startTime) / timePerChar;
bool inBalise = false, hidden = false;
int index = 0, nbBalise = 0;
IEnumerable<char> visible = "", invisible = "";
for (int i = 0; i < textToDisplay.Length; i++ )
{
    var c = textToDisplay.ElementAt(i);
    if (c == '<')
    {
        inBalise = true;
        if(!hidden)
            nbBalise++;
    }
    else if (c == '>')
        inBalise = false;

    if (!hidden)
    {
        if (!inBalise)
            index++;
        visible = visible.Append(c);
        if (index >= lengthToDisplay && !inBalise)
        {
            hidden = true;
        }
    } else if(!inBalise)
    {
        invisible = invisible.Append(c);
    }
}
var textLength = textToDisplay.Length;
(info ? textInfo : text).text = string.Concat(visible);
(info ? textInfo : text).text += (nbBalise % 2 == 1 ? "</color>" : "") + "<color=#00000000>" + string.Concat(invisible) + "</color>";