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



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

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

public static class Globals
{
    public static int FontSize {
        get{
            return FontSize;
        }
        set{
            FontSize = value;
        }
    }
}

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

  • 使用播放器首选项
  • 使用DontDestroyOnLoad
  • 使用全局变量

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

但是它可能有点过时了(2016(。

现在:"建议避免使用 DontDestroyOnLoad 来保留要在场景加载中生存的管理器游戏对象。相反,创建一个包含所有经理的管理器场景,并使用SceneManager.LoadScene(,LoadSceneMode.Additive(和SceneManager.UnloadScene来管理您的游戏进度。

如果即使应用关闭也希望保留字体大小

您应该使用 PlayerPrefs。

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

否则不要销毁加载(this(;使用此代码。

最新更新