【发布时间】:2017-03-05 03:20:38
【问题描述】:
嗯,这应该比现在简单得多!或者我被自己的无知蒙蔽了双眼!
我想要的是获取最后一个可播放关卡的字符串名称的方法。
澄清一下:
所有可玩关卡都有顺序名称 - “Level_01”到“Level_100”。
所有不可播放的场景都有名称,例如“开始菜单”和“关卡完成”,这些场景包含“主菜单”和“重播上一关”等按钮。
我没有使用 UI 系统,也根本不想这样做。相反,我设置了带有碰撞器的对象,并使用我的游戏机制充当“按钮”。例如,当玩家按下名为“Replay Last Level”的按钮时,OnCollisionEnter2D 应该加载最后播放的关卡。
每当玩家完成或丢失一个关卡时,他们都会被带到“LevelCompleted”并显示一些游戏统计数据(分数、时间等)。他们有三个选择:“主菜单”、“重播上一关”和“继续”。
我需要的只是一个字符串变量,它始终包含先前加载的 PLAYABLE 关卡的名称(即名称像“Level_01”而不像“开始菜单”的那些。)
然后我将使用该字符串在适当的位置输入我的 GameManager 脚本。当玩家射击“重播上一关”时,将加载上一关。当玩家射击“继续”时,我想玩下一个可玩的关卡。
非常简单的概念:我刚刚丢失了“Level_02”。我现在处于“LevelCompleted”中。我拍摄“重播最后一关”。我再次输入“Level_02”。相反,如果我射击“继续”,它会将我带到下一个可玩关卡,在这种情况下,如果该关卡已解锁,则为“Level_03”。如果尚未解锁,则“继续”按钮将带我回到“level_02”。
顺便说一句,我在一个空游戏对象上有一个 GameManager 脚本。它是一个坚持到每个场景的单例。在这个脚本中有两个类——一个是主要的公共类,它是单例,用更大的数组中的数据做一大堆东西——另一个只是一个可序列化的“公共类 GameData”。它仅包含写入文件并在游戏过程中根据需要重新加载的变量。
【问题讨论】:
标签: unity5