private IEnumerator TransitionToCanvasCoroutine (CanvasController cc, CanvasTransitionStyle style, object contextData) { CanvasTransitionContext context = new CanvasTransitionContext(this, cc, contextData); this.CanvasWillHide(); cc.CanvasWillShow(context); switch (style) { case CanvasTransitionStyle.Instant: this.Canvas.enabled = false; this.CanvasGroup.alpha = 0; cc.Canvas.enabled = true; cc.CanvasGroup.alpha = 1; this.CanvasDidHide(); cc.CanvasDidShow(); yield return new WaitForEndOfFrame(); break; case CanvasTransitionStyle.CrossFade: cc.Canvas.enabled = true; CrossFadeCanvasGroup(this.CanvasGroup, 0, 0.4f); CrossFadeCanvasGroup(cc.CanvasGroup, 1, 0.4f); yield return new WaitForSeconds(0.4f); this.CanvasDidHide(); cc.CanvasDidShow(); this.Canvas.enabled = false; break; case CanvasTransitionStyle.SlideUp: yield return new WaitForEndOfFrame(); break; case CanvasTransitionStyle.Scale: yield return new WaitForEndOfFrame(); break; } }
protected void TransitionToCanvas (CanvasController canvas, CanvasTransitionStyle style = CanvasTransitionStyle.Instant, object contextData = null) { if (this.IsSubcanvas) { this.parentCanvasController.TransitionToCanvas(canvas, style, contextData); } else { if (canvas.IsSubcanvas) { Debug.LogError("Cannot transition to a child CanvasController"); return; } StartCoroutine(this.TransitionToCanvasCoroutine(canvas, style, contextData)); } }