示例#1
0
    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));
    }
示例#2
0
    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;
    }