找回密码
 立即注册
查看: 369|回复: 0

Unity中使用脚本实现打字机效果cs

[复制链接]
发表于 2022-6-15 20:59 | 显示全部楼层 |阅读模式
在有文字提示的时候,想要实现一个字一个字的往外面提示,


下面来介绍一下实现方式


面板中


方法一 使用计时器


TypewriterEffect .cs脚本
using UnityEngine;using UnityEngine.UI;public class TypewriterEffect : MonoBehaviour{    public float charsPerSecond = 0.2f;//打字时间间隔    private string words;//保存需要显示的文字    private bool isActive = false;    private float timer;//计时器    private Text myText;    private int currentPos = 0;//当前打字位置    // Use this for initialization    void Start()    {        timer = 0;        isActive = true;        charsPerSecond = Mathf.Max(0.2f, charsPerSecond);        myText = GetComponent<Text>();        words = myText.text;        myText.text = "";//获取Text的文本信息,保存到words中,然后动态更新文本显示内容,实现打字机的效果    }    // Update is called once per frame    void Update()    {        OnStartWriter();        //Debug.Log (isActive);    }    //public void StartEffect()    //{    //  isActive = true;    //}    /// <summary>    /// 执行打字任务    /// </summary>    void OnStartWriter()    {        if (isActive)        {            timer += Time.deltaTime;            if (timer >= charsPerSecond)            {//判断计时器时间是否到达                timer = 0;                currentPos++;                myText.text = words.Substring(0, currentPos);//刷新文本显示内容                if (currentPos >= words.Length)                {                    OnFinish();                }            }        }    }    /// <summary>    /// 结束打字,初始化数据    /// </summary>    void OnFinish()    {        isActive = false;        timer = 0;        currentPos = 0;        myText.text = words;    }}方法二  使用DoTween插件

using DG.Tweening;using UnityEngine;using UnityEngine.UI;public class DoTxt : MonoBehaviour{    public Text TxtTips;//text组件    public string str;//文字    public float time;//显示时间    //想要首航缩进的话,空格不好用    //①复制  这是两个空白的字符,需要的自行复制     //②在脚本中直接赋值text是最简单的     //TextTest.text =“\u3000\u3000”+"字符串";    //2.UGUI的Text如果在编辑器直接输入显示我们可以自定义某几个字符串的alpha值    //  <color=#FFFFFF00>-----</color>    void Start()    {        TxtTips.DOText(str,time).SetEase(Ease.Linear);//匀速显示当前文章    }}```

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-9-22 09:45 , Processed in 0.063829 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表