IEnumerator DoExecute(SystemContext self, SystemContext next, SystemContextContainer container) { self._isCurrent = false; yield return(OnCurPreUnload?.Invoke()); yield return(self.DoPreUnload()); yield return(OnCurUnload?.Invoke()); yield return(self.DoUnload()); yield return(OnCurUnloaded?.Invoke()); yield return(self.DoUnloaded()); yield return(OnNextPreLoad?.Invoke()); yield return(next.DoPreLoad(container)); yield return(OnNextLoad?.Invoke()); yield return(next.DoLoad(container)); yield return(OnNextLoaded?.Invoke()); yield return(next.DoLoaded(container)); next._isCurrent = true; }
protected override IEnumerator DoPreLoad(SystemContextContainer container) { CameraManager.I.RequestCameraState(CameraStateType.Title); _titleUseCase = new TitleUseCase(titlePresenter, _stageSelectPresenter, OnChangeRace); yield break; }
protected override IEnumerator DoPreLoad(SystemContextContainer container) { RaceContextContainer raceContextContainer = container as RaceContextContainer; _useCase = new ResultUseCase(resultPresenter, raceContextContainer, OnChangeTitle); CameraManager.I.RequestCameraState(CameraStateType.Sky); yield break; }
protected override IEnumerator DoPreLoad(SystemContextContainer container) { TitleContextContainer titleContextContainer = container as TitleContextContainer; _useCase = new RaceUseCase(racePresenter, _racePlayerQWOP, _raceGoal, OnChangeResult, OnChangeTitle, titleContextContainer.SelectRace); CameraManager.I.RequestCameraState(CameraStateType.Race); for (int i = 0; i < _stageList.Count; i++) { _stageList[i].SetActive(i == titleContextContainer.SelectRace); } yield break; }
protected void ChangeContext( SystemContext next, SystemContextContainer container = null, System.Func <IEnumerator> onCurPreUnload = null, System.Func <IEnumerator> onCurUnload = null, System.Func <IEnumerator> onCurUnloaded = null, System.Func <IEnumerator> onNextPreLoad = null, System.Func <IEnumerator> onNextLoad = null, System.Func <IEnumerator> onNextLoaded = null) { SystemContextChanger changer = new SystemContextChanger(); changer.OnCurPreUnload = onCurPreUnload; changer.OnCurUnload = onCurUnload; changer.OnCurUnloaded = onCurUnloaded; changer.OnNextPreLoad = onNextPreLoad; changer.OnNextLoad = onNextLoad; changer.OnNextLoaded = onNextLoaded; changer.Execute(this, next, container); }
protected override IEnumerator DoLoaded(SystemContextContainer container) { yield break; }
protected virtual IEnumerator DoLoaded(SystemContextContainer container) { yield break; }
public void Execute(SystemContext self, SystemContext next, SystemContextContainer container) { AbsolutelyActiveCoroutine.Subscribe(DoExecute(self, next, container)); }