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

时间:2019-04-02 01:05:46

标签: c# unity3d global-variables

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

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

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

2 个答案:

答案 0 :(得分:0)

即使在关闭应用程序后仍要保留字体大小

您应该使用PlayerPrefs。

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

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

答案 1 :(得分:0)

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

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

此视频深入介绍了如何使用每个视频,并说明了利弊。 https://www.youtube.com/watch?v=WchH-JCwVI8

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

现在:“建议避免使用DontDestroyOnLoad持久保存要在场景负载中生存的管理器GameObject。相反,创建一个包含所有管理器的管理器场景,并使用SceneManager.LoadScene(,LoadSceneMode.Additive)和SceneManager .UnloadScene来管理游戏进度。“