Example #1
0
        public bool TransitionImages(float speed, bool smooth)
        {
            bool anyValueChanged = false;

            speed *= Time.deltaTime;

            for (int i = RendererList.Count - 1; i >= 0; i--)
            {
                Image image         = RendererList[i];
                bool  isActiveImage = IsCurrent(image);
                float targetOpacity = isActiveImage ? 1f : 0f;
                float alphaValue    = smooth ? Mathf.Lerp(image.color.a, targetOpacity, speed)
                                          : Mathf.MoveTowards(image.color.a, targetOpacity, speed);

                image.color     = GraphicHelpers.SetAlpha(image.color, alphaValue);
                anyValueChanged = true;

                if (!isActiveImage && image.color.a <= 0.01f)
                {
                    RendererList.RemoveAt(i);
                    Object.DestroyImmediate(image.gameObject);
                }
            }

            if (RendererList.Count == 1 && RenderLayer.CurrentRenderer.color.a == 1f)
            {
                return(false);
            }

            return(anyValueChanged);
        }
        public void ShrinkScaleRenderes()
        {
            if (_renderers == null)
            {
                return;
            }

            for (int i = 0; i < _renderers.Count; i++)
            {
                ScaleRenderer sRenderer = _renderers[i] as ScaleRenderer;
                for (int j = i + 1; j < _renderers.Count; j++)
                {
                    ScaleRenderer sRenderCand = _renderers[j] as ScaleRenderer;

                    if (sRenderer.Combine(sRenderCand))
                    {
                        _renderers.RemoveAt(j);
                        j--;
                    }
                }
            }
        }