Как правильно загрузить сцену - PullRequest
0 голосов
/ 05 декабря 2018

Эй, я делаю экран игры для своей игры.Я хочу, чтобы на экране появилось игровое окно, и когда игрок умирает, он перезапускает этот уровеньЯ сделал это неэффективным способом, создав несколько экранов перехода на другой экран, затем подключив каждый переход к их сцене, чтобы он мог перезапустить эту сцену.Моя проблема в том, что он все еще идет на мой основной уровень и пропускает учебник.Код:

    if (health == 0)
    {

        if (SceneManager.GetActiveScene() == SceneManager.GetSceneByName("Level 2 - Damages"))

            SceneManager.LoadScene("Gameover 1");

        if (SceneManager.GetActiveScene() == SceneManager.GetSceneByName("Level 3 - Wall Climbing"))

            SceneManager.LoadScene("Gameover 2");

        if (SceneManager.GetActiveScene() == SceneManager.GetSceneByName("Level 4 - FallingPlatform"))

            SceneManager.LoadScene("Gameover 3");

        if (SceneManager.GetActiveScene() == SceneManager.GetSceneByName("Level 5 - Buttons And Switches"))

            SceneManager.LoadScene("Gameover 4");

        if (SceneManager.GetActiveScene() == SceneManager.GetSceneByName("Final Level"))

            SceneManager.LoadScene("Gameover");


    }

1 Ответ

0 голосов
/ 05 декабря 2018

Я не совсем понимаю, какова ваша взаимосвязь между сценами заигрыши и вашей основной / сюжетной сценой, но ..

В Настройках сборки в меню Файл вы можете изменить порядок своих сцен.Убедитесь, что сценарий запуска / обучения / любой сцены, с которой вы хотите начать, находится вверху списка.

update;пс.переключение, вероятно, проще, чем-то вроде:

 if (health == 0)
    {
      switch(SceneManager.GetActiveScene()){
       case SceneManager.GetSceneByName("Level 2 - Damages"):
            SceneManager.LoadScene("Gameover 1");
            break;
       case default: 
             SceneManager.LoadScene("MainMenu");
        }
    } 
...