ぐーるらいふ

底辺。

【Unity】[TIPS] DoTweenで画像のalpha値をアニメーションさせたい

canvasgroupならFadeIn , Outがすぐ出来るみたいだけど、
uGUIのImageならどうやるのかをメモ。
ちょっと調べれば分かることですが…。

DOTween.ToAlphaを使う

var  fadeImage = GetComponent<Image>();
fadeImage.enabled = true;
var c = fadeImage.color;
c.a = 1.0f; // 初期値
fadeImage.color = c;

DOTween.ToAlpha(
	()=> fadeImage.color,
	color => fadeImage.color = color,
	0f, // 目標値
	1f // 所要時間
);

DoTween.ToAlphaを使うと、colorのalpha値に対して処理を行うことが出来る。
そのイベントを値を入れたいImageに渡してあげればOK。

沢山あったらどうなるんや

こんなテストコードで軽く動かしてみる。

public Image[] testImages;

public void fadeTest(){
        for (var i = 0; i < testImages.Length; i++)
        {
            // 初期化
            var img = testImages[i];
            var c = img.color;
            c.a = 1.0f;
            img.color = c;

            DOTween.ToAlpha(
                () => img.color,
                color => img.color = color,
                Random.Range(0.0f, 0.2f), // 目標値
                Random.Range(1f, 3f) // 所要時間
            ).SetLoops(-1 , LoopType.Yoyo);
        }
}

f:id:ghoul_life:20180201173209g:plain

問題なし。便利ですね!