【Unity】Textを徐々に消す方法

f:id:nuakam:20180124180536j:plain

表示させた文字列をすー…っと消えていくやり方

Text のフェードアウト


アニメーションを使わず、コルーチンで表現させていきます。
テキスト以外にもImageなんかでも使えるかも

サンプルコード

いきなりコードから

public class Fadeout : MonoBehaviour
{
	[SerializeField] private Text Hogehoge;

	public void BtnCallBack()
	{
		StartCoroutine(AnimationText(Hogehoge));
	}

	private IEnumerator AnimationText(Text _obj)
	{
		bool flag = true;
		float a_col = 1;
		var colortemp = _obj.color;
		while (flag)
		{
			_obj.color = new Color(colortemp.r, colortemp.g, colortemp.b, a_col);
			a_col -= Time.deltaTime;
			yield return new WaitForEndOfFrame();
			if (a_col < 0)
			{
				a_col = 0;
				flag = false;
			}
		}
	}
}

このスクリプトを適当なオブジェクトにアタッチさせ、Hogehogeに消したいオブジェクトを、ボタンにBtnCallbackをアタッチさせれば完成!


余計な処理を挟んでる気がします(´ . .̫ . `)


解説

テキストカラーのアルファ値を徐々に0に近づけていく処理です。
(RGBAのAの値)

本来ならcolor指定は float型で各値ごとに255fで除算しなければなりませんが、アルファ値は1~0で表現できるようです。


1から0になるまでwhileでループさせ,deltaTime毎にマイナスさせています。