首页 > 解决方案 > Unity 中的全局变量(在所有场景中更改字体大小、颜色)

问题描述

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

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

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

标签: c#unity3dglobal-variables

解决方案


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

  • 使用 PlayerPrefs
  • 使用 DontDestroyOnLoad
  • 使用全局变量

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

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

现在:“建议避免使用 DontDestroyOnLoad 来持久化您希望在场景加载中幸存的管理器游戏对象。相反,创建一个包含所有管理器的管理器场景并使用 SceneManager.LoadScene(, LoadSceneMode.Additive) 和 SceneManager.UnloadScene 来管理您的游戏进度。”</p>


推荐阅读