Unity UGUI模拟打字效果

来源:互联网 发布:php在线文件管理系统 编辑:程序博客网 时间:2024/06/16 20:26

代码如下

using System.Collections;using UnityEngine;using UnityEngine.UI;public class SelfWritingText : MonoBehaviour{    [SerializeField] private Text textToUse;    [SerializeField] private bool useThisText = false;    [SerializeField] private bool useThisTextText = false;    [SerializeField] private float letterPause = 0.1f;    [TextAreaAttribute(4, 15)]    [SerializeField]    private string message;        private void Start()    {        message = textToShow[0];        if (useThisText)        {            textToUse = GetComponent<Text>();        }        if (useThisTextText)        {            message = textToUse.text;        }        textToUse.text = "";        StartCoroutine(TypeText(textToUse, message, letterPause));    }        private IEnumerator TypeText(Text text, string textText, float timePause)    {        for (int i = 0; i < textText.Length; i++)        {            text.text += textText[i];               yield return 0;            yield return new WaitForSeconds(timePause);                   }    }    public void WriteText(Text newText = null, string newTextToShow = null, float newLetterPause = -1.0f)    {        if (newText != null && newTextToShow != null && newLetterPause > 0.0f)        {            StartCoroutine(TypeText(newText, newTextToShow, newLetterPause));            return;        }        if (newText != null && newTextToShow != null)        {            StartCoroutine(TypeText(newText, newTextToShow, letterPause));            return;        }        if (newText != null && newLetterPause > 0.0f)        {            StartCoroutine(TypeText(newText, message, newLetterPause));            return;        }        if (newTextToShow != null && newLetterPause > 0.0f)        {            StartCoroutine(TypeText(textToUse, newTextToShow, newLetterPause));            return;        }        if (newTextToShow != null)        {            StartCoroutine(TypeText(textToUse, newTextToShow, letterPause));            return;        }        if (newLetterPause > 0.0f)        {            StartCoroutine(TypeText(textToUse, message, letterPause));            return;        }    }}


原创粉丝点击