Uniting中的水平

问题描述 投票:-1回答:2

我真的很困惑,我是编程新手,我不知道如何制作一个电平计数器可以在每个场景中访问例:我创建了一个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.")
}

这不是我想要使它更清晰的代码

c# unity3d levels
2个回答
0
投票

看起来您需要一个持久性系统。

有很多保存游戏状态的方法。 PlayerPrefs是最简单,最易访问的,尽管对于更复杂的保存而言并不是最佳选择。

您可以使用此调用来保存解锁的级别数量(假设它是增量的:)>

    PlayerPrefs.SetInt("levelsUnlocked", 3);

然后您可以使用:

检索值。
levelsUnlocked = PlayerPrefs.GetInt("levelsUnlocked", 0);

Note

:这里的第二个参数是分配的默认值,以防您之前没有保存过。

希望有帮助。如果要升级保存游戏,请考虑编写自己的保存文件类并使用JSON对其进行序列化。 https://docs.unity3d.com/Manual/JSONSerialization.html

前一个选项对于简单的项目仍然很方便。


0
投票

有几种方法可以解决此问题。我的建议是将游戏进度数据存储到场景范围之外的文件或数据库中(基于SQLite的良好文件解决方案是SQLite-here是我在最近的一个项目中关于如何实现SQLite的Wiki帖子) )。

© www.soinside.com 2019 - 2024. All rights reserved.