使用Dotween改变UGUI中Color的透明度(Pingpong效果)

项目需求需要给一张UGUI图片做逐渐显示又逐渐隐藏的循环效果。说白了就是Tween里的Pingpong。

但发现Itween对于Color的支持不包含Image和RawImage,研究了一通之后绝对放弃。所以选择了Dotween

代码如下:

   void Pingpong(float fromValue, float toValue,float duration)
        {   
            Color temColor = gameObject.GetComponent().color;
            temColor.a = fromValue;
               Tweener tweener = DOTween.ToAlpha(() => temColor, x => temColor = x, toValue, duration);
                tweener.onUpdate = () => { gameObject.GetComponent().color = temColor; };
                tweener.onComplete = () =>
            {
                Pingpong(toValue,fromValue, duration);
            };
        }

此处用到了递归,比如当第一次把透明度从1变到0之后,递归时把参数反转,即可实现pingpong的效果。这里改变的是color的透明度,当然可以循环改变颜色等值。

你可能感兴趣的:(unity)