如何加载正确的场景

时间:2018-12-05 11:52:02

标签: c# unity3d scene-manager

嘿,我正在为我的游戏制作游戏画面。我希望它获得游戏结束屏幕,然后在玩家死亡时重新启动该级别。我以低效的方式制作了多个游戏结束画面,然后将每个游戏结束连接到其场景,以便可以重新启动该场景。我的问题是,它仍然会进入我的主要水平,并跳过了教程。代码:

    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 :(得分:1)

我真的不了解您在游戏结束场景和主要/后场场景之间的关联是什么。

在“构建设置”的“文件”菜单中,您可以重新排列场景。确保启动/教程/要开始的任何场景都在列表顶部。

更新; ps。切换可能也更容易 类似于:

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