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--; } } } }