#region Environment
Windows 10 21H1
Unity 2020.3.15f1c1 LTS
VSCode 1.58.2
// ToneTune Toolkit 下载地址
// https://github.com/MirzkisD1Ex0/ToneTuneToolkit.git
#endregion
 
非常简陋。
通过控制文字色彩透明度实现闪烁效果。
// 需要ToneTuneToolkit插件 // 不用也行
 
01.搭建一个简单的场景。
 
02.复制粘贴修改修改就能用了,或者从TTT插件中拖一个到字体对象上。
using UnityEngine;
using UnityEngine.UI;

namespace ToneTuneToolkit.UI
{
  /// <summary>
  /// OK
  /// 文字闪烁
  /// 挂在对象上
  /// </summary>
  public class TextFlick : MonoBehaviour
  {
    public float minAlpha = 102f; // 最小透明度
    public float maxAlpha = 255f; // 最大透明度
    public float speed = 15f; // 速度

    private float floatingValue = 0;
    private bool isFull = false;
    private Color newColor;
    private Text tCmpt;

    private void Start()
    {
      tCmpt = GetComponent<Text>();
      newColor = tCmpt.color;
    }

    private void Update()
    {
      TextAlphaFlick();
    }

    /// <summary>
    /// 文字透明度浮动
    /// </summary>
    private void TextAlphaFlick()
    {
      if (floatingValue < maxAlpha && !isFull)
      {
        floatingValue += Time.deltaTime * 10 * speed;
        if (floatingValue >= maxAlpha)
        {
          isFull = true;
        }
      }
      else if (floatingValue > minAlpha && isFull)
      {
        floatingValue -= Time.deltaTime * 10 * speed;
        if (floatingValue <= minAlpha)
        {
          isFull = false;
        }
      }
      newColor.a = floatingValue / 255;
      tCmpt.color = newColor;
    }
  }
}
 
03.效果没法通过一张jpg来表达……总之就是透明度会来回pingpong,而且没用Math里的Pingpong。
  可以设置其最小/最大透明度及闪烁的速度。
  改一改还可以用于图片闪烁。
 
#region Introduction
此工程位于Github,遵从MPLv2.0协议,请根据需求使用。Pull完记得点个Star!
文章仅作抛砖引玉之用,希望能够借此给予寻求思路的开发者们一些灵感。
此教程系列曾属于“Unity The Great”,但由于“Tone Tune Tookit”的诞生,开发组决定将两个系列进行合并。
如果内容中出现了语混序乱、错鳖字、缺少标点符号的情况还请见谅
互联网精神永存。
Hooray!!!
#endregion

#region Developer
[团队代言人博客]
// https://www.cnblogs.com/mirzkisd1ex0/
[开发者邮箱]
// dearisaacyang@outlook.com
[开发者微信]
// wxid_63t8w3035kvp22
[开发者企鹅]
// 2957047371
#endregion
posted on 2021-07-30 15:56  MirzkisD1Ex0  阅读(204)  评论(0编辑  收藏  举报