对于我的游戏,我希望能够将第一个场景的难度转移到第二个场景中,我已经尝试查找它,但似乎找不到适合我的解决方案。这不是完全必要的,但我想为其他项目了解它。有人知道怎么做吗?
简短的回答,你不能。除非两个场景同时加载(如果游戏不需要它,不建议这样做,只是为了获得你的价值)。
您可以通过两种方式实现这一目标:
DontDestroyOnLoad()
呼吁的 GO;然后你可以访问它拥有的任何脚本当然在单例的情况下也经常使用两者的结合。如果您想要最简单的方法,请使用静态变量。请记住,它不会被序列化。所以不要指望在游戏会话之间使用它(例如在重新启动游戏之后)。同样在保存的游戏中序列化它需要手动序列化,与
JsonUtility
提供的不同。
这都是笼统的谈话。
现在,如果你所说的“难度”是指你有一个开始菜单,你问玩家他们希望游戏有多难,他们可以选择简单、中等或困难,那么你需要将它保存在一个普通的公共目录中实例化单例的变量,不是静态的。为什么?你需要保存它,否则当玩家加载保存时,游戏将不知道玩家第一次选择的难度。还要记住,变量需要是一个适当的字段,而不是一个属性。它必须 not 是
private
或 protected
并且没有 SerializedField
属性(因为它是隐式的)。