Exemplo n.º 1
0
    public void ChangeScene(SceneStorageManager.Scenes scene, bool reset = false)
    {
        resetNextScene = reset;
        if (reset)
        {
            SceneManager.UnloadSceneAsync(SceneManager.GetActiveScene());

            scenes.Clear();
        }
        scenes.Add(scene);

        LoadScene(scene);
    }
Exemplo n.º 2
0
    private void LoadScene(SceneStorageManager.Scenes scene, bool reset = false)
    {
        if (isLoading)
        {
            Debug.Log("Currently switching please wait");
            return;
        }

        string sceneName = GetSceneName(scene);

        Debug.Log("Loaded scene " + sceneName);

        if (!string.IsNullOrEmpty(sceneName))
        {
            resetNextScene = reset;

            var async = SceneManager.LoadSceneAsync(sceneName, LoadSceneMode.Single);
            isLoading = true;

            async.completed += (obj) =>
            {
                isLoading = false;
                Debug.Log("loaded");
                //if (resetNextScene)
                //{

                //}
                //var asOp = SceneManager.UnloadSceneAsync(SceneManager.GetActiveScene());
                //asOp.completed += (b) =>
                //{
                //    isLoading = false;
                //    SceneManager.SetActiveScene(SceneManager.GetSceneByName(nextScene));
                //    Debug.Log("Loaded");
                //    nextScene = null;
                //};
            };

            //if (reset)
            //{
            //    async = SceneManager.LoadSceneAsync(sceneName, LoadSceneMode.Single);
            //}
            //else
            //{
            //    async = SceneManager.LoadSceneAsync(sceneName, LoadSceneMode.Additive);
            //}
            //async.completed += Async_completed;

            ////async.allowSceneActivation = false;
        }
    }
Exemplo n.º 3
0
    public void LoadPreviousScene(bool quitOnEnd = true)
    {
        SceneStorageManager.Scenes previousScene = SceneStorageManager.Scenes.None;
        string sceneName = null;

        if (scenes.Count > 1)
        {
            previousScene = scenes[scenes.Count - 2];
            scenes.RemoveAt(scenes.Count - 1);
        }
        else
        {
            if (quitOnEnd)
            {
                Debug.Log("Exiting application");
                if (!Application.isEditor)
                {
                    Application.Quit();
                }
                return;
            }
            else
            {
                previousScene = scenes[0];
            }
        }

        sceneName = GetSceneName(previousScene);
        if (!string.IsNullOrEmpty(sceneName))
        {
            SceneManager.UnloadSceneAsync(sceneName);
        }

        Debug.Log("Loading previous scene " + previousScene);
        LoadScene(previousScene);
    }
Exemplo n.º 4
0
    private string GetSceneName(SceneStorageManager.Scenes scene)
    {
        nextScene = null;
        switch (scene)
        {
        case Scenes.Login:
            nextScene = "LoginPanel";
            break;

        case Scenes.Register:
            nextScene = "SignupPanel";
            break;

        case Scenes.Simulation:
            nextScene = "SimulationPanel";
            break;

        case Scenes.User:
            nextScene = "UserPanel";
            break;
        }

        return(nextScene);
    }