u3d打字机效果

2023-08-24 13:43:18 浏览数 (2)

代码语言:javascript复制
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
public class Typewriter : MonoBehaviour
{

    float fSpeed = 0.1f;
    Text Showtext;
    string sContent;//文本字符串
    int curPos;//当前文字位置(当前的最后一个字)
    void Start()
    {
        Showtext = GetComponent<Text>();
        SetContent();
    }
    void SetContent()
    {
        curPos = 0;
        sContent = Showtext.text;
        Debug.Log("lenth  "   sContent.Length);
        Showtext.text = string.Empty;
        InvokeRepeating("Typing", 0, fSpeed);
    }

    void Update()
    {
        if (!sContent.Contains(Showtext.text))
        {
            Debug.Log("typing");
            CancelInvoke("Typing");
            SetContent();
        }
    }

    void Typing()
    {
        if (sContent.Length - 1 == curPos)//如果当前字符位置等于字符总长度前一个位置就停止调用打字方法
            CancelInvoke("Typing");

        Showtext.text  = sContent.Substring(curPos, 1);//每次都截取到当前位置的下一个字符位置
        curPos  ;
    }

}

实现字一个一个出现的打字效果

0 人点赞