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)); }
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(); }