Unity Text文本实现打字机(一个一个出来)的效果

Unity Text文本要实现打字机,即一个个文字出来的效果,可以通过代码把text文本字符串拆成一个个字符然后添加到文本中。

具体实现:

新建一个控制脚本:TypewriteController.cs,并编写以下代码:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;


public class TypewriteController : MonoBehaviour
{
    public float typingSpeed = 0.1f; // 每个字符的显示间隔时间
    private string fullText;
    private string currentText = "";
    public Text textComponent;


    // Start is called before the first frame update
    void Start()
    {
        
    }

    // Update is called once per frame
    void Update()
    {
        if(Input.GetKeyDown(KeyCode.A))
        {
            fullText = textComponent.text;
            textComponent.text = "";
            StartCoroutine(TypeText());
        }
    }

    IEnumerator TypeText()
    {
        foreach (char c in fullText)
        {
            currentText += c;
            textComponent.text = currentText;
            yield return new WaitForSeconds(typingSpeed);
        }
    }
}

此控制脚本先把脚本文本获取后赋给一个字符串变量,然后置空文本内容,再通过协程把该字符串变量值拆分成一个个字符,然后使用协程来把一个个字符(即单个文字) 赋值给文本,这样就完成了打字机的效果。

新建一个场景,并在场景创建一个Text组件,把脚本拉到场景中,再把Text组件拖到脚本中的textComponent对象,运行场景,效果如下:

Unity Text文本实现打字机(一个一个出来)的效果

相关推荐
omegayy3 小时前
Unity WebGL:本机部署,运行到手机
unity·游戏引擎·webgl
萌萌的提莫队长6 小时前
Unity 语音转文字 Vosk 离线库
unity·游戏引擎
Thomas_YXQ7 小时前
Unity3D 移动端CPU端性能调优详解
windows·unity·编辑器·游戏开发·热更新
C MIKE20 小时前
unity免费资源2025-1-10
unity·游戏引擎
恬静的小魔龙21 小时前
【Unity3D日常开发】Unity3D中打开Window文件对话框打开文件(PC版)
3d·unity·编辑器·游戏引擎·音视频
90后小陈老师21 小时前
Unity搭配VS Code使用
unity·游戏引擎
FatherOfCodingMan21 小时前
unity PrefabUtility 接口使用记录
unity·游戏引擎
林枫依依21 小时前
Unity 视频导入unity后,播放时颜色变得很暗很深,是什么原因导致?
unity·游戏引擎
め.21 小时前
Unity的Transform类
unity·游戏引擎
人生不过一瞬间21 小时前
Unity 自定义批量打包工具
windows·unity·游戏引擎