Exemplo n.º 1
0
    private List <TextTypeNode> parseText(TextData data)
    {
        string text = data.text;

        text = stripNotes(text);

        List <TextTypeNode> blobs = new List <TextTypeNode>();       //yolo

        for (int i = 0; i < text.Length; ++i)
        {
            if (text[i] == '<')
            {
                int    closeIndex = text.IndexOf('>', i);
                string tagString  = text.Substring(i, closeIndex - i + 1);
                i = closeIndex;
                TextTypeNode node = new TextTypeNode().InitTag(tagString);
                blobs.Add(node);
            }
            else if (text[i] == '{')
            {
                int    closeIndex  = text.IndexOf('}', i);
                string pauseString = text.Substring(i + 1, closeIndex - i - 1);
                i = closeIndex;
                TextTypeNode node = new TextTypeNode().InitPause(float.Parse(pauseString));
                blobs.Add(node);
            }
            else
            {
                char[] args     = { '<', '{' };
                int    endIndex = text.IndexOfAny(args, i);
                string mainString;
                if (endIndex >= 0)
                {
                    mainString = text.Substring(i, endIndex - i);
                    i          = endIndex - 1;
                }
                else
                {
                    mainString = text.Substring(i);
                    i          = text.Length;
                }

                TextTypeNode node = new TextTypeNode().InitText(mainString);
                blobs.Add(node);
            }
        }

        return(blobs);
    }
Exemplo n.º 2
0
    public void TypeText(string textToWrite, float letterDelay, Action onFinishedPlaying)
    {
        RawTextTypedSoFar      = "";
        VolatileTextTypedSoFar = "";
        useSkipDelay           = false;
        if (current != null)
        {
            StopCoroutine(current);
        }

        List <TextTypeNode> nodes = new List <TextTypeNode>();
        TextTypeNode        node  = new TextTypeNode().InitText(textToWrite);

        current = StartCoroutine(typeText(nodes, letterDelay, onFinishedPlaying));
    }