对于我的游戏,我希望能够从我的第一个场景到我的第二个场景的难度,我已经尝试查找它,但我似乎不能找到一个解决方案,为我工作。这不是完全必要的,但我想知道它的其他项目。有人知道怎么做吗?
enxuqcxy1#
简短的回答,你不能。除非两个场景同时加载(如果游戏不需要,不推荐使用,只是为了获得您的价值)。有两种方法可以做到这一点:1.使用一种未示例化的静态处理程序或管理器,或者在示例化的单例处理程序或管理器中使用静态变量1.使用“全局”游戏对象;好吧,从技术上讲不是全局的,但它是一个调用了DontDestroyOnLoad()的GO;你就可以访问它的任何脚本当然,在单例的情况下,经常使用两者的组合。如果你想要最简单的方法,使用静态变量。请记住,它不会被序列化。因此,不要期望在游戏会话之间使用它(例如重新启动游戏后)。此外,在保存的游戏中序列化它需要手动序列化,而不是JsonUtility提供的序列化。这都是泛泛之谈。现在,如果你说的“难度”是指你有一个开始菜单,你问玩家他们希望游戏有多难,他们可以选择容易,中等或困难,那么你需要将其保存在一个示例化的Singleton的普通公共变量中,而不是静态的。为什么?你需要保存它,否则当玩家加载保存时,游戏将不知道玩家第一次选择的难度。还请记住,变量需要是一个适当的字段,而不是一个属性。它必须不是是private或protected,并且没有SerializedField属性(因为它是隐式的)。
DontDestroyOnLoad()
JsonUtility
private
protected
SerializedField
1条答案
按热度按时间enxuqcxy1#
简短的回答,你不能。除非两个场景同时加载(如果游戏不需要,不推荐使用,只是为了获得您的价值)。
有两种方法可以做到这一点:
1.使用一种未示例化的静态处理程序或管理器,或者在示例化的单例处理程序或管理器中使用静态变量
1.使用“全局”游戏对象;好吧,从技术上讲不是全局的,但它是一个调用了
DontDestroyOnLoad()
的GO;你就可以访问它的任何脚本当然,在单例的情况下,经常使用两者的组合。如果你想要最简单的方法,使用静态变量。请记住,它不会被序列化。因此,不要期望在游戏会话之间使用它(例如重新启动游戏后)。此外,在保存的游戏中序列化它需要手动序列化,而不是
JsonUtility
提供的序列化。这都是泛泛之谈。
现在,如果你说的“难度”是指你有一个开始菜单,你问玩家他们希望游戏有多难,他们可以选择容易,中等或困难,那么你需要将其保存在一个示例化的Singleton的普通公共变量中,而不是静态的。为什么?你需要保存它,否则当玩家加载保存时,游戏将不知道玩家第一次选择的难度。还请记住,变量需要是一个适当的字段,而不是一个属性。它必须不是是
private
或protected
,并且没有SerializedField
属性(因为它是隐式的)。