Unity小功能之超简单打字机效果、Text首行缩进

前言:打字机效果在大部分视觉小说类型游戏中很常见,也是一种特别的文字表现形式。本文就如何在Unity中实现打字机效果以及Text如何实现首行缩进展开介绍。

本篇文章使用的是Pico的开发环境,当然在其他开发环境下也能使用同样的方法实现。

目录

一、打字机效果

二、首行缩进


一、打字机效果

效果预览:

1.1 Hierarchy面板右击—XR—UI Canvas,新建画布并调整其位置以及缩放值,修改Canvas Scaler组件下的Dynamic Pixels Per Unit为2(不建议超过10)。若在PC环境下开发则直接在UI—Canvas中新建画布即可。

官方文档中对于Dynamic Pixels Per Unit的解释:

属性:功能:
Dynamic Pixels Per Unit用于 UI 中动态创建的位图(如文本)的每单位像素量。

简单理解:将数值调高可以增加Text的清晰度

1.2 Canvas下右击—UI—Text,新建文本,将需要显示的文字输入Text组件中。如果要显示的文字太长,而Text的Width和Height不够大,文本会被截断,需要调整其数值才能使文本全部显示出来,也可以调整字号大小使文本全部显示。

1.3 编写脚本。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;  //引用UnityEngine.UI命名空间,用于调用UI相关组件

public class TypeWriter : MonoBehaviour
{
    public Text GetText;  //公有变量,用于在编辑器中获取需要显示的文本

    private string GetString;  //用于存放需要显示的文本

    private void Awake()
    {
        GetString = GetText.text;  //将在编辑器中获取到的文本内容赋值给string类型变量存放
        GetText.text = string.Empty;  //清空文本框
        StartCoroutine(Typing());  //启用协程
    }

    IEnumerator Typing()
    {
        for (int i = 0; i < GetString.Length; i++)  //循环
        {
            GetText.text += GetString[i];  //逐个输出保存在GetString变量中的文字
            yield return new WaitForSeconds(0.1f);  //每输出一个字,等待0.1秒
        }
    }
}

1.4 将脚本挂载至Text上,并将Text拖拽至脚本下的GetText列即可。

二、首行缩进

Text不支持空格缩进,如果文本中遇到空格,会自动换行。

实现思路:在文本开头添加透明字符。

<color=#FFFFFF00>缩进</color>

如果需要在首行缩进下实现打字机效果,上述方法则不再适用。

修改代码:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;  //引用UnityEngine.UI命名空间,用于调用UI相关组件

public class TypeWriter : MonoBehaviour
{
    public Text GetText;  //公有变量,用于在编辑器中获取需要显示的文本

    private string GetString= "大家好,今天我们学习怎么实现打字机效果。";  //用于存放需要显示的文本

    private void Awake()
    {
        StartCoroutine(Typing());  //启用协程
    }

    IEnumerator Typing()
    {
        for (int i = 0; i < GetString.Length; i++)  //循环
        {
            GetText.text += GetString[i];  //逐个输出保存在GetString变量中的文字
            yield return new WaitForSeconds(0.1f);  //每输出一个字,等待0.1秒
        }
    }
}

Text组件内的文本需要手动清空,只需要保留两个透明字符。

运行效果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值