【Unity】Textを徐々に消す方法
表示させた文字列をすー…っと消えていくやり方
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毎にマイナスさせています。