加载使用的上一个(最后)场景

时间:2014-05-31 13:05:03

标签: c# android unity3d scene

我正在为Android制作一个2D游戏,我制作了超过200个关卡/场景。我还制作了一个场景游戏,当玩家与一个obscale碰撞时打开。在GameOver场景中,我添加了一个重试按钮我想做它所以它打开了最后一个级别。我是Unity和脚本的新手。我读过其他类似的问题,但没有一个能解决我的问题。任何人都有任何想法可以提供帮助吗?

我这样做是因为我不想在场景中创建200多个游戏并在游戏中编辑每个obscale。

1 个答案:

答案 0 :(得分:4)

这种最简单的解决方案通常是最好的。所有你需要做的就是让你的游戏记住你在哪个场景。这是如何。

创建一个可用作容器的static class。也就是说,它将保持您当前所处的场景,并且它将在游戏的整个存在中存在。

public static class LevelManager
{
    private static string lastLevel;

    public static void setLastLevel(string level)
    {
        lastLevel = level;
    }

    public static string getLastLevel()
    {
        return lastLevel;
    }

    public static void changeToPreviousLvl()
    {
        Application.LoadLevel(lastLevel);
    }
}

因此,每次加载新场景时都会调用此方法,除非您在场景上加载游戏。你可以通过将这行代码放在一个脚本中来实现这一点,该脚本在每个场景中重复,也许是一个Player脚本。

void Awake()
{
   // Call the LevelManager and set the last level.
   LevelManager.setLastLevel(Application.loadedLevelName);
}

您可以混合使用Javascript和C#脚本。我建议你一点一点地开始切换到C#。

当GameOver发生并且玩家想要重新启动时,您必须调用LevelManager.getLastLevel()来获取字符串名称,以便您可以使用它来加载新场景。