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

}
```

相关文章
|
图形学
Unity 不同Scene场景转换(简)
本文提供了Unity中实现场景转换的基本方法,包括编写传送脚本、创建传送门和玩家对象,并通过触发器实现玩家触碰传送门时切换到另一个场景的功能。
Unity 不同Scene场景转换(简)
|
搜索推荐 算法 C#
【Unity 3D】C#中冒泡排序、选择排序、插入排序等算法的详解(附源码 超详细)
【Unity 3D】C#中冒泡排序、选择排序、插入排序等算法的详解(附源码 超详细)
558 1
|
C# 图形学
【unity小技巧】Unity音乐和音效管理器
【unity小技巧】Unity音乐和音效管理器
1464 2
|
vr&ar C# 图形学
从零开始的PICO开发教程(4)-- VR世界 射线传送、旋转和移动
这篇文章是PICO开发系列教程的第四部分,详细介绍了在VR世界中实现射线传送、视角旋转和人物移动的方法,包括使用Teleportation组件进行区域传送和锚点传送,通过Snap Turn Provider组件实现视角快速旋转,以及创建PlayControl脚本来控制人物移动,并通过手柄与脚本组件的交互来增强VR体验。
|
开发者 图形学 开发工具
Unity编辑器神级扩展攻略:从批量操作到定制Inspector界面,手把手教你编写高效开发工具,解锁编辑器隐藏潜能
【8月更文挑战第31天】Unity是一款强大的游戏开发引擎,支持多平台发布与高度可定制的编辑器环境。通过自定义编辑器工具,开发者能显著提升工作效率。本文介绍如何使用C#脚本扩展Unity编辑器功能,包括批量调整游戏对象位置、创建自定义Inspector界面及项目统计窗口等实用工具,并提供具体示例代码。理解并应用这些技巧,可大幅优化开发流程,提高生产力。
1539 1
|
图形学
unity判断鼠标在不在UI上
在 Unity 中,判断鼠标是否在 UI 上主要依赖事件系统和射线检测机制。Unity 的事件系统负责处理输入事件,GraphicRaycaster 组件用于检测射线与 UI 元素的相交情况。通过 `EventSystem.current.IsPointerOverGameObject()` 方法可轻松判断鼠标是否在 UI 上。对于移动端,使用 `EventSystem.current.IsPointerOverGameObject(Input.GetTouch(0).fingerId)` 来判断触摸是否在 UI 上。代码实现简单且高效。
|
图形学
Unity 使用VideoPlayer播放视频,实现播放,暂停,快进的效果
该UI搭建流程包括创建Render Texture和RawImage,添加Video Player组件并设置Target Texture与Video Clip。通过Event Trigger组件为滑动条添加拖拽事件,控制视频播放进度。代码实现中,`ShuiWenZhiShiButton`类管理视频播放、暂停、进度条更新及时间显示功能,并通过按钮切换不同视频。测试时可验证各功能是否正常运作。
|
开发工具 图形学
【推荐100个unity插件之11】Shader实现UGUI的特效——UIEffect为 Unity UI 提供视觉效果组件
【推荐100个unity插件之11】Shader实现UGUI的特效——UIEffect为 Unity UI 提供视觉效果组件
2986 0
|
图形学
unity一个按钮实现开和关
在 Unity 中,通过一个布尔变量 `count` 来记录按钮的状态(开/关),并在点击事件中根据该变量的值执行不同操作。代码示例展示了两种方法:一种是通过计数器的奇偶性判断状态,另一种是直接取反布尔变量。每次点击后更新状态变量,从而实现按钮的开/关切换。