Unity 逐字显示 打字机效果

简介: 在 Unity 中实现逐字显示的打字机效果,主要通过 UGUI Text 组件和 C# 脚本完成。核心原理是将文本逐字拆分并按时间间隔依次显示。具体步骤如下:1. 创建 Text 组件和脚本;2. 使用协程或 Update 方法控制字符逐个显示。代码示例展示了两种实现方式,一种使用协程 `IEnumerator`,另一种通过 `Update` 方法结合 `Substring` 实现逐字显示效果。

在 Unity 中实现逐字显示的打字机效果,核心原理是对文本内容进行逐字拆分,并在一定的时间间隔内依次显示每个字符,以下从不同实现方式详细阐述其原理和实现步骤:
基于 UGUI Text 组件实现
原理概述
借助 Unity 的 UGUI(Unity GUI)系统中的 Text 组件,将完整的文本内容存储起来,然后通过一个计时器控制,按顺序逐个字符地添加到 Text 组件的显示文本中,从而模拟打字机逐字显示的效果。
具体步骤及代码示例

  1. 准备工作
    在 Unity 场景中创建一个 Text 组件,用于显示文本内容。同时创建一个 C# 脚本,将其挂载到包含 Text 组件的游戏对象上。
  2. 代码实现如下:
    ```
    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    using UnityEngine.UI;
    ///
    /// *Unity文字逐字显示实现*
    ///
    public class Text_ : MonoBehaviour
    {
    public Text text;
    private string str = "*Unity文字逐字显示实现*";

    private float waitTime = 0.2f; //字符间隔

    private float speed = 0; //计时

#region 第一种方法实现
void Start()
{
    //StartCoroutine("Numerator");  //开启协程
}
IEnumerator Numerator()
{
    foreach (var item in str)
    {
        text.text += item;
        yield return new WaitForSeconds(waitTime);
    }
}
#endregion

#region 第二种方法实现
private void Update()
{
    //speed += 0.2f;     //直接加等于也可以      亲测可用
    speed += Time.deltaTime * 10f;   //感觉慢就乘上一个数

    text.text = str.Substring(0, (int)speed + 1);

    //Substring 逐个增加字符串的数量   vs 可按F12自行查看

}
#endregion
AI 代码解读

}
```

相关文章
|
11月前
|
C++
C++语言中的一些小点
C++语言中的一些小点
喂~讲真~我很讨厌chrome谷歌浏览器的默认填充输入框input样式咧,敲击讨厌滴啦,怎么去掉介个样式尼
喂~讲真~我很讨厌chrome谷歌浏览器的默认填充输入框input样式咧,敲击讨厌滴啦,怎么去掉介个样式尼
|
11月前
|
在微信小游戏制作工具中实现文字逐个出现的打字机效果
在微信小游戏制作工具中实现文字逐个出现的打字机效果
138 0
[oeasy]python0110 屏幕点阵字体_3x5_5x7_雅达利字库
[oeasy]python0110 屏幕点阵字体_3x5_5x7_雅达利字库
182 0
[oeasy]python0110 屏幕点阵字体_3x5_5x7_雅达利字库
基于Qt的网络音乐播放器(五)实现歌词滚动显示
基于Qt的网络音乐播放器(五)实现歌词滚动显示
【Unity3D 灵巧小知识点】☀️ | Unity控制台 输出打印不同颜色的字体
Unity 小科普 老规矩,先介绍一下 Unity 的科普小知识: Unity是 实时3D互动内容创作和运营平台 。 包括游戏开发、美术、建筑、汽车设计、影视在内的所有创作者,借助 Unity 将创意变成现实。 Unity 平台提供一整套完善的软件解决方案,可用于创作、运营和变现任何实时互动的2D和3D内容,支持平台包括手机、平板电脑、PC、游戏主机、增强现实和虚拟现实设备。 也可以简单把 Unity 理解为一个游戏引擎,可以用来专业制作游戏!
【Unity3D 灵巧小知识点】☀️ | Unity控制台 输出打印不同颜色的字体
【Unity3D 灵巧小知识点】☀️ | Unity通过 射线 获取 鼠标的世界坐标 和 鼠标点击的物体信息
Unity 小科普 老规矩,先介绍一下 Unity 的科普小知识: Unity是 实时3D互动内容创作和运营平台 。 包括游戏开发、美术、建筑、汽车设计、影视在内的所有创作者,借助 Unity 将创意变成现实。 Unity 平台提供一整套完善的软件解决方案,可用于创作、运营和变现任何实时互动的2D和3D内容,支持平台包括手机、平板电脑、PC、游戏主机、增强现实和虚拟现实设备。
【Unity3D 灵巧小知识点】☀️ | Unity通过 射线 获取 鼠标的世界坐标 和 鼠标点击的物体信息
C# WPF 歌词控件(支持逐字定位描色效果)
原文:C# WPF 歌词控件(支持逐字定位描色效果) 之前做了一个模仿网易云歌词的控件,实现了加载网易云歌词并能随音乐播放进度定位歌词。今天呢将在这个控件的基础上增加逐字定位描色功能,如下图效果(QQ音乐PC)所示:   我所使用的实现方法很简单粗暴,把每句歌词每个字切开,单独显示在一个描色的控件中,然后拼成一行完整的歌词,随音乐播放进度去找相应的字进行描色。
1475 0
写一个去除AI2XAML注释及多余数字位数的WPF窗体程序
原文:写一个去除AI2XAML注释及多余数字位数的WPF窗体程序 使用正则表达式去除多余注释及冗余数字位,关键代码:            string pattern = @"/b(/d+)/.
1086 0
QML学习笔记(四)-Canva画板画图功能-跟随鼠标位置进行随笔画
参考博主文章进行整理了代码,实现功能参考:https://blog.csdn.net/UbuntuTouch/article/details/46375697 源码:https://github.com/sueRimn/QML-ExampleDemos 更多的鼠标实时画图-画直线画圆画矩形等看下...
2537 0
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等