示例#1
0
    private IEnumerator ResetCurrentSceneAsyncCoroutine(string sceneName)
    {
        AsyncOperation asyncOperation = SceneManager.LoadSceneAsync(sceneName);

        gameDataHolder = null;
        CoroutineManager.DeleteAllCoroutines("ResetCurrentSceneAsyncCoroutine");

        while (!asyncOperation.isDone)
        {
            yield return(new WaitForEndOfFrame());
        }

        if (sceneName == mainSceneName)
        {
            gameDataHolder = GameObject.FindGameObjectWithTag("Game Data Holder");
            InitializeGame();
            LoadData(false);
        }

        currentSceneName = sceneName;

        CoroutineManager.DeleteCoroutine("ResetCurrentSceneAsyncCoroutine");
    }