Ejemplo n.º 1
0
    //Intro
    private IEnumerator Typewrite(DialogScene currentScene, float writeSpeed)
    {
        string currentWord = "";
        int    index       = 0;

        while (currentWord.Length < currentScene.text.Length)
        {
            canWrite     = false;
            currentWord += currentScene.text[index];
            currentScene.currentTextField.text = currentWord;
            OnLetterWritten?.Invoke();

            if (index > 1 && currentScene.text[index] == ' ' && currentScene.text[index - 1] == '.')
            {
                yield return(new WaitForSeconds(writeSpeed * pauseTimeAtDot));
            }
            else
            {
                yield return(new WaitForSeconds(writeSpeed));
            }
            index++;
        }
        yield return(new WaitForSeconds(currentScene.afterTextDelay));

        canWrite = true;
    }
Ejemplo n.º 2
0
    //Dialogi
    private IEnumerator Typewrite(DialogScene currentScene, string author)
    {
        char sign  = ' ';
        int  index = 0;

        goalSentence    = currentScene.text;
        currentSentence = "";

        if (currentScene.overrideDialog)
        {
            currentScene.currentTextField.text = "";
        }

        if (author[0] != '0')
        {
            currentScene.currentTextField.text += "<br><br>" + author + "<br><br>";
        }

        while (currentSentence.Length < currentScene.text.Length)
        {
            canWrite = false;

            if (currentScene.text[index] == '^')
            {
                currentSentence += ' ';
                sign             = ' ';
                yield return(new WaitForSeconds(longPause));
            }
            else if (currentScene.text[index] == '&')
            {
                currentSentence += ' ';
                sign             = ' ';
                AudioManager.Instance.PlaySound(currentScene.soundEvent);
            }
            else
            {
                currentSentence += currentScene.text[index];
                sign             = currentScene.text[index];
            }
            currentScene.currentTextField.text += sign;
            OnLetterWritten?.Invoke();

            if (index > 1 && currentScene.text[index] == ' ' && currentScene.text[index - 1] == '.')
            {
                yield return(new WaitForSeconds(writeSpeed * pauseTimeAtDot));
            }
            else
            {
                yield return(new WaitForSeconds(writeSpeed));
            }
            index++;
        }

        currentScene.currentTextField.text += "<br><br>" + currentScene.msgAfterScene + "<br>";
        yield return(new WaitForSeconds(currentScene.afterTextDelay));

        canWrite = true;
    }
Ejemplo n.º 3
0
    // Narrator
    private IEnumerator Typewrite(DialogScene currentScene)
    {
        string currentWord = "";
        int    index       = 0;

        while (currentWord.Length < currentScene.text.Length)
        {
            canWrite = false;

            if (currentScene.overrideDialog)
            {
                dialogTextField.text = "";
            }

            if (currentScene.text[index] != '^' && currentScene.text[index] != '&')
            {
                currentWord += currentScene.text[index];
            }
            else if (currentScene.text[index] == '^')
            {
                currentWord += ' ';
                yield return(new WaitForSeconds(longPause));
            }
            else if (currentScene.text[index] == '&')
            {
                currentWord += ' ';
                AudioManager.Instance.PlaySound(currentScene.soundEvent);
            }
            currentScene.currentTextField.text = currentWord;
            OnLetterWritten?.Invoke();

            if (index > 1 && currentScene.text[index] == ' ' && currentScene.text[index - 1] == '.')
            {
                yield return(new WaitForSeconds(writeSpeed * pauseTimeAtDot));
            }
            else
            {
                yield return(new WaitForSeconds(writeSpeed));
            }
            index++;
        }
        yield return(new WaitForSeconds(currentScene.afterTextDelay));

        canWrite = true;
        currentScene.OnSceneFinished?.Invoke();
    }