首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >加载前面(最后)使用的场景

加载前面(最后)使用的场景
EN

Stack Overflow用户
提问于 2014-05-31 13:05:02
回答 1查看 5.3K关注 0票数 0

我为安卓制作了一个2D游戏,我制作了200多个级别/场景。我还制作了一个场景游戏,当玩家与obscale.In碰撞时,GameOver场景就会打开。我添加了一个重试按钮,我想让它打开,所以它打开了统一和脚本中的最后一个played.Im级别。我读过其他类似的问题,但是他们都没有修正我的issue.Anyone,有什么可以帮助我的吗?

我这么做是因为我不想在场景中创建200多个游戏,并编辑游戏中的每一个大比例尺。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-05-31 19:29:09

通常,这个最简单的解决方案是最好的。你所要做的就是让你的游戏记住你所在的场景。这就是怎么做的。

创建一个将作为容器工作的静态类。也就是说,它将保留您当前所在的场景,并且它将在整个游戏的存在中存在。

代码语言:javascript
复制
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);
    }
}

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

代码语言:javascript
复制
void Awake()
{
   // Call the LevelManager and set the last level.
   LevelManager.setLastLevel(Application.loadedLevelName);
}

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

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

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23970414

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档