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文本实现打字机(一个一个出来)的效果

相关推荐
wonder135791 小时前
UGUI重建流程和优化
unity·游戏开发·ugui
Doc.S4 小时前
多无人机任务自定义(基于ZJU-FAST-Lab / EGO-Planner-v2)
游戏引擎·无人机·cocos2d
那个村的李富贵5 小时前
Unity打包Webgl后 本地运行测试
unity·webgl
nnsix6 小时前
Unity OpenXR开发HTC Vive Cosmos
unity·游戏引擎
nnsix7 小时前
Unity OpenXR,扳机键交互UI时,必须按下扳机才触发
unity·游戏引擎
nnsix7 小时前
Unity XR 编辑器VR设备模拟功能
unity·编辑器·xr
老朱佩琪!7 小时前
Unity访问者模式
unity·游戏引擎·访问者模式
不定时总结的那啥7 小时前
Unity实现点击Console消息自动选中预制体的方法
unity·游戏引擎
nnsix8 小时前
Unity OpenXR 关闭手柄的震动
unity·游戏引擎
CreasyChan8 小时前
Unity 中的反射使用详解
unity·c#·游戏引擎·游戏开发