LoginSignup
7
4

More than 5 years have passed since last update.

UnityEngine.UI.Textをフェードイン・アウトする時のメモリ消費

Last updated at Posted at 2017-10-15

概要

Unityで文字をフェードイン・アウトする方法についてです。
bandicam-2017-10-15-16-05-37-911.gif

環境

Windows 10
Unity 2017.1.1f1

方法1

一番最初に試した方法がこちらです。

using UnityEngine;
using UnityEngine.UI;

public class Sample : MonoBehaviour
{
    public Text text;

    void Update()
    {
        Color color = text.color;
        color.a = color.a <= 0 ? 1 : color.a - 0.01f;
        text.color = color;
    }
}

これでもやりたい事はできましたが、メモリ消費がどんどん増えます。
※秒間200Kbyte程度

方法2

長時間この効果を連続させたく、メモリ消費を抑えたかったので以下の方法にしました。

01.png

00.png

using UnityEngine;
using UnityEngine.UI;

public class Sample : MonoBehaviour
{
    public Text text;

    void Update()
    {
        Color color = text.material.GetColor("_Color");
        color.a = color.a <= 0 ? 1 : color.a - 0.01f;
        text.material.SetColor("_Color", color);
    }
}

マテリアルを作成し、ShaderをUI/Unlit/Textを設定します。
作成したマテリアルをTextのMaterialに設定します。
スクリプトではText.colorの代わりにマテリアルの"_Color"を変更します。

備考

実行形式については未確認です。

参考

http://tsubakit1.hateblo.jp/entry/2015/03/24/062102
http://kan-kikuchi.hatenablog.com/entry/Material

7
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
4