#概要
Unityで文字をフェードイン・アウトする方法についてです。
#環境
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
長時間この効果を連続させたく、メモリ消費を抑えたかったので以下の方法にしました。
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