Exemplo n.º 1
0
        private void FadeRun(GameObject go, float fromOpacity, float toOpacity, bool toChildrens = false)
        {
            bool isReverse = false;

            var colors = GetColor(go);

            isReverse = fromOpacity > toOpacity;

            var canvasGroup = go.GetComponent <CanvasGroup>();

            if (toChildrens && canvasGroup == null)
            {
                go.AddComponent <CanvasGroup>();

                currentAlpha = go.GetComponent <CanvasGroup>().alpha;

                isReverse = true;
            }
            else if (canvasGroup != null && toChildrens)
            {
                currentAlpha = go.GetComponent <CanvasGroup>().alpha;
                isReverse    = canvasGroup.alpha > toOpacity;
            }

            ColorHelperType type = toOpacity > fromOpacity ? ColorHelperType.FadeIn : ColorHelperType.FadeOut;


            _mb.StartCoroutine(RunAnimation(
                                   progress: (time) => {
                SetColorAlpha(
                    go: go,
                    colorHelper: colors,
                    opacity: toOpacity,
                    time: time,
                    colorType: type,
                    toChildrens: toChildrens,
                    isComplete: false
                    );
            }, complete: () => {
                SetColorAlpha(
                    go: go,
                    colorHelper: colors,
                    opacity: toOpacity,
                    time: 0f,
                    colorType: type,
                    toChildrens: toChildrens,
                    isComplete: true
                    );
            }, isReverse: isReverse
                                   ));
        }
Exemplo n.º 2
0
        private void SetColorAlpha(GameObject go, ColorHelper colorHelper, float opacity, float time, ColorHelperType colorType, bool toChildrens = false, bool isComplete = false)
        {
            Color32 color = new Color();

            if (!isComplete)
            {
                if (colorType == ColorHelperType.FadeOut)
                {
                    color = new Color(colorHelper.color.r, colorHelper.color.g, colorHelper.color.b, Mathf.Lerp(opacity, currentAlpha, time / _Time));
                }
                else
                {
                    color = new Color(colorHelper.color.r, colorHelper.color.g, colorHelper.color.b, Mathf.Lerp(currentAlpha, opacity, time / _Time));
                }
            }
            else
            {
                if (colorType == ColorHelperType.FadeOut)
                {
                    color = new Color(colorHelper.color.r, colorHelper.color.g, colorHelper.color.b, opacity);
                }
                else
                {
                    color = new Color(colorHelper.color.r, colorHelper.color.g, colorHelper.color.b, opacity);
                }
            }

            if (toChildrens)
            {
                var cg = go.GetComponent <CanvasGroup>();
                if (!isComplete)
                {
                    cg.alpha = colorType == ColorHelperType.FadeOut ? Mathf.Lerp(opacity, currentAlpha, time / _Time) : Mathf.Lerp(currentAlpha, opacity, time / _Time);
                }
                else
                {
                    cg.alpha = opacity;
                }
            }
            else
            {
                if (colorHelper.materialRenderer != null)
                {
                    colorHelper.materialRenderer.sharedMaterial.SetColor("_Color", color);
                }
                else if (colorHelper.materialImage != null)
                {
                    colorHelper.materialImage.color = color;
                }
                else if (colorHelper.materialRawImage != null)
                {
                    colorHelper.materialRawImage.color = color;
                }
                else if (colorHelper.materialText != null)
                {
                    colorHelper.materialText.color = color;
                }
            }
        }