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

相关推荐
张老师带你学2 小时前
unity道具,哑铃架+天文望远镜,一边运动一边观星
科技·游戏·unity·模型·游戏美术
Swift社区7 小时前
如果今天重新做 Claw,会用什么技术
游戏·unity
Tatalaluola12 小时前
3DGS高斯泼溅渲染简单理解
3d·unity·三维重建
努力长头发的程序猿14 小时前
在Unity当中使用GameFrameworkX框架的知识点
java·unity·游戏引擎
etp_16 小时前
Unity Avater
unity·游戏引擎
唐小墨同学17 小时前
工程场景数字化初体验-145分钟极速版
unity·机械
JIes__19 小时前
Unity(三)——DoTween/TimeLine
unity·游戏引擎
WarPigs19 小时前
基于泛型+反射的Excel万能导表工具
unity·c#·excel·反射
心前阳光21 小时前
Mirror网络库插件使用4
java·linux·网络·unity·c#·游戏引擎
呆呆敲代码的小Y1 天前
【Unity-AI开发篇】| Unity-MCP最新指南:让AI接管游戏开发
人工智能·游戏·unity·ai·游戏引擎·mcp·unitymcp