做个文字闪烁效果,闪瞎小伙伴的双眼(Unity3D)

简介: 分享一段文字渐变的代码

一、前言

分享一段文字渐变的代码,先看一下效果吧:

网络异常,图片无法展示
|


二、正文

直接贴代码吧 - -

using System;
using System.Collections;
using UnityEngine;
using UnityEngine.UI;
public class TextFade : MonoBehaviour
{
    public Text text;
    public float dt = 0.07f;//打字间隔时间
    public float showingTime = 2f;//显示使用的时间
    public float duration = 3f; // 显示时长
    void Start()
    {
        Show("测试效果");
    }
    public void Show(string text)
    {
        if (duration <= 0)
        {
            transform.parent.gameObject.SetActive(false);
            return;
        }
        StartCoroutine(FadeIn(text));
    }
    private IEnumerator FadeIn(string text)
    {
        float Startime = Time.time, aTime, dTime = Time.time;
        int index = 0;  // 文字长度索引
        float timeScale;
        int a = 0;
        bool start = false;
        if (this.text)
        {
            while (index < text.Length || a < 255)
            {
                this.text.text = "";
                timeScale = 256 / (index * showingTime);
                aTime = (Time.time - Startime) * timeScale;
                for (int i = 0; i <= index && i < text.Length; i++)
                {
                    a = (int)(aTime * (index - i));
                    a = Mathf.Clamp(a, 0, 255);
                    if (a == 255 && i == 0 && start == false)
                    {
                        this.text.text += "<color=#" + RGBColorToHex(this.text.color) + "ff>";
                        start = true;
                    }
                    if (a == 255 && start)
                    {
                        this.text.text += text[i];
                        continue;
                    }
                    if (a != 255 && start)
                    {
                        start = false;
                        this.text.text += "</color>";
                    }
                    string aStr = Convert.ToString(a, 16);
                    aStr = (aStr.Length == 1 ? "0" : "") + aStr;
                    this.text.text += "<color=#" + RGBColorToHex(this.text.color) + aStr + ">" + text[i] + "</color>";
                }
                if (a == 255 && start)
                {
                    Startime = Time.time;
                    this.text.text += "</color>";
                    do
                    {
                        this.text.text = "";
                        //transform.parent.gameObject.SetActive(false);
                        yield return 0;
                    } while (Time.time - Startime > duration);
                }
                if (Time.time - dTime >= dt)
                {
                    dTime = Time.time;
                    index++;
                }
                yield return 0;
            }
        }
    }
    private string RGBColorToHex(Color color) //十进制转十六进制
    {
        int r = Mathf.RoundToInt(color.r * 255.0f);
        int g = Mathf.RoundToInt(color.g * 255.0f);
        int b = Mathf.RoundToInt(color.b * 255.0f);
        string hex = string.Format("{0:X2}{1:X2}{2:X2}", r, g, b);
        return hex;
    }
}
复制代码


三、怎么用

1、将脚本随便附到一个对象上面

网络异常,图片无法展示
|

2、将要显示文本的text拖入TextFade脚本的Text插槽中:

网络异常,图片无法展示
|

然后,这个地方是要显示的文本:

网络异常,图片无法展示
|

大家可以测试一下效果了。。。


相关文章
|
1月前
|
移动开发 JavaScript 前端开发
分享86个鼠标特效,总有一款适合您
分享86个鼠标特效,总有一款适合您
41 1
分享86个鼠标特效,总有一款适合您
|
1月前
|
移动开发 JavaScript 前端开发
分享76个鼠标特效,总有一款适合您
分享76个鼠标特效,总有一款适合您
78 7
|
1月前
|
移动开发 JavaScript 前端开发
分享88个鼠标特效,总有一款适合您
分享88个鼠标特效,总有一款适合您
40 3
|
1月前
泡泡龙游戏开发实战教程(4):泡泡停靠处理
泡泡龙游戏开发实战教程(4):泡泡停靠处理
46 0
|
1月前
|
前端开发 JavaScript 程序员
程序员教你用代码制作3d爱心跳动特效,正好拿去送给女神给她个惊喜
使用HTML、CSS和JavaScript实现了一个三维网格采样器`MeshSurfaceSampler`,适用于任意浏览器,推荐谷歌。代码创建了一个类,从缓冲几何体的三角形网格中进行随机采样。提供了设置权重属性、构建分布和自定义随机数生成器的功能。用户只需将代码复制到文本文档并保存为HTML文件,即可运行。适合编程爱好者尝试,也可分享给他人。
|
11月前
|
JSON 自然语言处理 前端开发
用D3制作一张有翻页特效的手撕日历(只需100行代码)
在D3中用十分简单的代码就可以实现丰富的动画,下面来看一下手撕日历的动画效果吧
203 1
用D3制作一张有翻页特效的手撕日历(只需100行代码)
|
6月前
|
前端开发
HTML+CSS制作七夕跳动的红心动画效果
HTML+CSS制作七夕跳动的红心动画效果
|
前端开发 JavaScript
2023年新年烟花代码(背景音乐完整版)
2023年新年烟花代码(背景音乐完整版)
177 0
|
JavaScript 前端开发
【前端领域】一个好玩好看的罗盘时钟 --- 附详细介绍
唯有热爱,可抵岁月漫长,唯有热爱,不畏世间无常! 少年不曾迷茫,展翅飞往神域,坚定初心,踏实行动。 新的一年,收下少年的祝福,一起踏上新道路。 💪(ง •_•)ง!!!
173 0
【前端领域】一个好玩好看的罗盘时钟 --- 附详细介绍
|
JavaScript 前端开发
WebGL 手撸3d贺卡+小草飘动滤镜
前言 图片 2022-2-15 webGL初始化(常规操作) 获取 WebGLRenderingContext const gl = canvas.getContext('webgl'); 编译shader并把编译好的shader附加到创建好的program中 //顶点着色器 const vertShader = gl.createShader(gl.VERTEX_SHADER); gl.shaderSource(vertShader,vertSource);//vertSource:着色器源码 gl.compileShader(vertShader);
WebGL 手撸3d贺卡+小草飘动滤镜