【发布时间】:2018-12-05 11:52:01
【问题描述】:
嘿,我正在为我的游戏制作游戏结束画面。我希望它获得游戏结束屏幕,然后当玩家死亡时它会重新启动该级别。我以一种低效的方式制作了多个游戏结束屏幕,然后将每个游戏结束连接到他们的场景,这样它就可以重新启动那个场景。我的问题是它仍然进入我的主要级别并跳过教程。代码:
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");
}
【问题讨论】:
-
如果我理解,您可能只想存储玩家死亡的场景,例如在 PlayerPrefs 中,然后从游戏结束场景中的任何机制查找它以重新启动。
-
为什么不将当前场景存储到某个地方的静态 int 或字符串中,然后当您遇到游戏结束场景时,只需重新加载存储的值?你也可以使用 PlayerPrefs 来做到这一点。
标签: c# unity3d scene-manager