zoukankan      html  css  js  c++  java
  • Unity的学习笔记(UGUI文本逐个字输出)

    之前在网上找过各种的逐个输出字,我可能理解能力不好,照着代码复制没有能使用成功,于是自己研究了很多网上说的思路,各种改良出了一个能用的,写完自己测试,觉得还真好用,于是记录下来

    用法:将用代码组件挂上去,通过查找到代码组件,通过enabled来控制组件开关,每次更新文字时候,让组件进行一次关闭和开启,就能再次逐个显示

    using UnityEngine;
    using System.Collections;
    using UnityEngine.UI;
    
    public class WordOutPut : MonoBehaviour
    {
    
        public float charsPerSecond = 0.05f;//打字时间间隔
        private string words;//保存需要显示的文字
    
        private bool isActive = false; //判断是否开始输出
        private float timer;//计时器
        private Text myText;//获取身上的test脚本
        private int currentPos = 0;//当前打字位置
    
        // Use this for initialization
        private void OnDisable()
        {
            OnFinish();//当脚本在失活的时候,将数据进行重置
        }
      /// <summary> 
      /// 当脚本被激活的时候,将数据进行初始化
      /// </summary>
    private void OnEnable() { timer = 0; isActive = true; charsPerSecond = Mathf.Max(0.02f, charsPerSecond); //将最小的出字速度限制为0.02,也可以自行调整 myText = GetComponent<Text>(); words = myText.text; myText.text = "";//获取Text的文本信息,保存到words中,然后动态更新文本显示内容,实现打字机的效果 } void Start() { } // Update is called once per frame void Update() { OnStartWriter(); //Debug.Log (isActive); } /// <summary> /// 执行打字任务 /// </summary> void OnStartWriter() { if (isActive) { timer += Time.deltaTime; if (timer >= charsPerSecond)//判断计时器时间是否到达 { timer = 0; currentPos++;
              
             //这里其实还可以做一个改良,可以检测一个input用户输入,如果输入了,则让currentPos = words.Length,这样可以实现按下按键,马上就显示完毕
               myText.text
    = words.Substring(0, currentPos);//刷新文本显示内容 if (currentPos >= words.Length) { OnFinish(); } } } } /// <summary> /// 结束打字,初始化数据 /// </summary> void OnFinish() { isActive = false; timer = 0; currentPos = 0; myText.text = words; } }
  • 相关阅读:
    Socket规划(1)
    hdu 2391 Filthy Rich
    UDP议定书图像高速传输无损失程序
    C# 通过豆瓣网络编程API获取图书信息
    OS调度算法常用摘要
    mysql回想一下基础知识
    2015第37周三
    2015第37周二
    2015第37周一
    2015第37周一struts2 jstl 标签
  • 原文地址:https://www.cnblogs.com/takanashi/p/11026876.html
Copyright © 2011-2022 走看看