public virtual bool Close(IUIPageController nextPage, bool immidiate = false) { if (!this.model.CanClose) { return(false); } this.model.PageState = PageState.Closing; this.model.currentNextPage = nextPage; this.Disable(); // Start fading out the page ScreenFader fader = this.view.Fader; if (immidiate) { fader.ImmidiateFade(false, () => this.model.PageState = PageState.Closed); if (this.OnFadeTick != null) { this.OnFadeTick(0.0f); } } else { fader.StartFade(false, () => this.model.PageState = PageState.Closed, this.OnFadeTick); } return(true); }
public virtual bool Open(IUIPageController previousPage, bool immidiate = false) { if (!this.model.CanOpen) { return(false); } this.model.currentPreviousPage = previousPage; if (this.model.Type == PageType.Popup && previousPage != null) { previousPage.Disable(); } this.model.PageState = PageState.Opening; this.view.gameObject.SetActive(true); this.Enable(); // Start fading in the page ScreenFader fader = this.view.Fader; if (immidiate) { fader.ImmidiateFade(true, () => this.model.PageState = PageState.Opened); if (this.OnFadeTick != null) { this.OnFadeTick(1.0f); } } else { fader.StartFade(true, () => this.model.PageState = PageState.Opened, this.OnFadeTick); } return(true); }
// There is some lag happening after first frame of scene loading, // so this coroutine starts page fade out after 1 frame IEnumerator GetLoadingPageCloseRoutine(IUIPageController nextPage) { // Wait 1 frame yield return(null); this.Close(nextPage); }
public void OpenAndClose(IUIPageController nextPage) { this.model.SceneToLoadIdx = -1; this.Open(null, true); this.view.StartCoroutine(this.GetLoadingPageCloseRoutine(nextPage)); }
public void OpenAndLoadScene(int sceneToLoadIdx, IUIPageController previousPage) { this.model.SceneToLoadIdx = sceneToLoadIdx; this.Open(previousPage); }