Пример #1
0
    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);
    }
Пример #2
0
    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();
    }