Unity中的全局变量(更改字体大小,颜色,跨所有场景)

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

我想在Unity中构建一个应用程序,我想做的一件事就是能够从设置场景中更改字体大小和颜色。我接近这个的方法是使用一个全局变量并尝试从设置场景访问和更改它,然后让所有其他场景从设置变量中获取其字体大小。

到目前为止,我已经构建了一个全局变量类(如下所示),并尝试通过单击设置类中的按钮来访问它。我不确定这是否是解决此问题的最佳方法,也不确定如何使所有其他场景获取此全局类的信息并在新场景加载时更新它。

public static class Globals
{
    public static int FontSize {
        get{
            return FontSize;
        }
        set{
            FontSize = value;
        }
    }
}
c# unity3d global-variables
2个回答
0
投票

如果即使应用程序关闭也希望保留fontsize

你应该使用PlayerPrefs。

https://docs.unity3d.com/ScriptReference/PlayerPrefs.html

否则DontDestroyOnLoad(this);使用此代码。


0
投票

要在场景之间保留数据,您可以:

  • 使用PlayerPrefs
  • 使用DontDestroyOnLoad
  • 使用GlobalVariables

该视频深入解释了如何使用每一个并解释其优缺点。 https://www.youtube.com/watch?v=WchH-JCwVI8

然而,它可能有点过时(2016年)。

现在:“建议避免使用DontDestroyOnLoad来保持想要在场景加载中存活的管理器GameObjects。而是创建一个包含所有管理器的管理器场景,并使用SceneManager.LoadScene(,LoadSceneMode.Additive)和SceneManager.UnloadScene来管理你的游戏进度。“

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