public void DequeueDialog() { //判断是否打字状态 if (isCurrentlyTyping) { if (buffer) { return; } CompleteText(); StopAllCoroutines(); isCurrentlyTyping = false; return; } //判断是否已读取完成 if (dialogInfo.Count == 0) { EndofDialog(); if (tg != null) { tg.OnTalkFinish(); } return; } //读取 DialogBase.Info info = dialogInfo.Dequeue(); completeText = info.contentTxt; //可额外添加内容 //dialogName.text = info.speakerName; //dialogText.text = info.contentTxt; //dialogPortrait.sprite = info.protrait; dialogBox.GetDialogText().text = info.contentTxt; StartCoroutine(TypeText(info)); }
IEnumerator TypeText(DialogBase.Info info) { isCurrentlyTyping = true; dialogBox.GetDialogText().text = ""; foreach (char c in info.contentTxt.ToCharArray()) { yield return(new WaitForSeconds(typeSpeed)); dialogBox.GetDialogText().text += c; } isCurrentlyTyping = false; }