private LoadingScreenPresenter RequestLoadingScreen(bool requirePlayerInput) { LoadingScreenPresenter loadingScreenPrefab = _loadScreenConfig.GetLoadScreen(requirePlayerInput); LoadingScreenPresenter instance = Instantiate(loadingScreenPrefab); instance.transform.SetParent(_loadScreenParent.transform, false); instance.transform.localPosition = Vector3.zero; instance.transform.localScale = Vector3.one; instance.Initialize(); return(instance); }
public IEnumerator LoadLevelLoadScreen(string sceneName, bool usePlayerInput) { _instancedLoadScreen = RequestLoadingScreen(usePlayerInput); yield return(null); AsyncOperation ao = loader.LoadSceneAsync(sceneName); ao.allowSceneActivation = false; while (!ao.isDone) { _instancedLoadScreen.RefreshLoadingProgress(ao.progress); if (ao.progress >= 0.9f) { ao.allowSceneActivation = true; break; } yield return(null); } _instancedLoadScreen.RefreshLoadingProgress(1); // Temp wait system while waiting for 2017.4 StartCoroutine(_instancedLoadScreen.WaitForCompletion()); while (_instancedLoadScreen.InExecution) { yield return(null); } // yield return _instancedLoadScreen.WaitForCompletion(); ao.allowSceneActivation = true; RemoveLoadingScreen(); }