我真的很困惑,我是编程新手,我不知道如何制作一个电平计数器可以在每个场景中访问例:我创建了一个3d游戏,我想在玩家完成第1级游戏后,使用以下方法将第2级游戏解锁:玩家完成关卡时,关卡计数器会变为2触发器可以访问该级别计数器,例如:
var level = "level counter which is 2 in this case"
if level == 3
active the trigger (trigger teleports the player to level 3)
else {
floatMessage("You haven't finished level (?) yet.")
}
这不是我想要使它更清晰的代码
看起来您需要一个持久性系统。
有很多保存游戏状态的方法。 PlayerPrefs是最简单,最易访问的,尽管对于更复杂的保存而言并不是最佳选择。
您可以使用此调用来保存解锁的级别数量(假设它是增量的:)>
检索值。PlayerPrefs.SetInt("levelsUnlocked", 3);
然后您可以使用:
:这里的第二个参数是分配的默认值,以防您之前没有保存过。levelsUnlocked = PlayerPrefs.GetInt("levelsUnlocked", 0);
Note
希望有帮助。如果要升级保存游戏,请考虑编写自己的保存文件类并使用JSON对其进行序列化。 https://docs.unity3d.com/Manual/JSONSerialization.html
前一个选项对于简单的项目仍然很方便。
有几种方法可以解决此问题。我的建议是将游戏进度数据存储到场景范围之外的文件或数据库中(基于SQLite的良好文件解决方案是SQLite-here是我在最近的一个项目中关于如何实现SQLite的Wiki帖子) )。