我为安卓制作了一个2D游戏,我制作了200多个级别/场景。我还制作了一个场景游戏,当玩家与obscale.In碰撞时,GameOver场景就会打开。我添加了一个重试按钮,我想让它打开,所以它打开了统一和脚本中的最后一个played.Im级别。我读过其他类似的问题,但是他们都没有修正我的issue.Anyone,有什么可以帮助我的吗?
我这么做是因为我不想在场景中创建200多个游戏,并编辑游戏中的每一个大比例尺。
发布于 2014-05-31 19:29:09
通常,这个最简单的解决方案是最好的。你所要做的就是让你的游戏记住你所在的场景。这就是怎么做的。
创建一个将作为容器工作的静态类。也就是说,它将保留您当前所在的场景,并且它将在整个游戏的存在中存在。
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);
}
}因此,每次加载新场景时,您都会调用此方法,除非您在场景上加载游戏。您可以通过将这一行代码放在一个脚本上来做到这一点,这个脚本在每个场景中都会重复,也许是一个播放器脚本。
void Awake()
{
// Call the LevelManager and set the last level.
LevelManager.setLastLevel(Application.loadedLevelName);
}您可以混合和匹配Javascript和C#脚本。我建议您开始一点一点地切换到C#。
当GameOver发生并且播放器想要重新启动时,您必须调用LevelManager.getLastLevel()来获取字符串名称,以便您可以使用该名称加载新场景。
https://stackoverflow.com/questions/23970414
复制相似问题