Exemplo n.º 1
0
 public void EnableDialogue(string id)
 {
     _currentDialogue = inGameDialogues.First(d => d.dialoguePopUp.id == id);
     dialogueImage.gameObject.SetActive(true);
     DialoguePosition(false);
     if (_currentDialogue.dialoguePopUp.playerWalk)
     {
         UIManager.Instance.popUpEnabled = true;
     }
     StartCoroutine(AnimatedText(_currentDialogue));
 }
Exemplo n.º 2
0
    private IEnumerator AnimatedText(DialoguePopUpStruct d)
    {
        var line = new StringBuilder();

        foreach (var l in d.dialoguePopUp.lines)
        {
            if (d.dialoguePopUp.instantText)
            {
                float timeToWait = 0f;
                text.text = l.line;
                var cs = l.line.ToCharArray();
                foreach (var c in cs)
                {
                    if (c == ' ')
                    {
                        timeToWait += timeToAdd;
                    }
                }
                yield return(new WaitForSeconds(timeToWait));
            }
            else
            {
                line = new StringBuilder();
                var c = l.line.ToCharArray();
                for (int i = 0; i < c.Length; i++)
                {
                    if (c[i] == '<')
                    {
                        while (c[i] != '>')
                        {
                            line.Append(c[i]);
                            i++;
                            yield return(null);
                        }
                    }

                    line.Append(c[i]);
                    text.text = line.ToString();
                    yield return(new WaitForSeconds(0.05f));
                }
                yield return(new WaitForSeconds(0.9f));
            }
        }
        if (!d.dialoguePopUp.instantText)
        {
            yield return(new WaitForSeconds(5f));
        }
        DisableDialogue();
    }