我正在为Android制作一个2D游戏,我制作了超过200个关卡/场景。我还制作了一个场景游戏,当玩家与一个obscale碰撞时打开。在GameOver场景中,我添加了一个重试按钮我想做它所以它打开了最后一个级别。我是Unity和脚本的新手。我读过其他类似的问题,但没有一个能解决我的问题。任何人都有任何想法可以提供帮助吗?
我这样做是因为我不想在场景中创建200多个游戏并在游戏中编辑每个obscale。
答案 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()
来获取字符串名称,以便您可以使用它来加载新场景。