Глобальные переменные в Unity (изменение размера шрифта, цвета для всех сцен) - PullRequest
2 голосов
/ 02 апреля 2019

Я пытаюсь создать приложение в Unity, и одна из вещей, которые я хотел бы сделать, - это иметь возможность изменять размер шрифта и цвет из настроек сцены.Я подхожу к этому, используя глобальную переменную и пытаясь получить к ней доступ и изменить ее из сцены настроек, а затем заставить все остальные сцены получить размер шрифта из заданной переменной.

Пока что я создал класс глобальной переменной (показанный ниже) и пытаюсь получить к нему доступ одним нажатием кнопки в классе настроек.Я не уверен, является ли это лучшим способом решения этой проблемы, и не уверен, как заставить все другие сцены извлекать информацию из этого класса глобалов и обновлять ее при каждой загрузке новой сцены.

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

Ответы [ 2 ]

0 голосов
/ 02 апреля 2019

Чтобы хранить данные между сценами, вы можете:

  • Использовать PlayerPrefs
  • Использовать DontDestroyOnLoad
  • Использовать GlobalVariables

Это видеоподробно объясняет, как использовать каждый из них и объясняет все за и против.https://www.youtube.com/watch?v=WchH-JCwVI8

Однако это может быть немного устаревшим (2016).

Теперь: "рекомендуется избегать использования DontDestroyOnLoad для сохранения менеджера GameObjects, который вы хотите пережить при загрузке сцены. Вместо этого создайте сцену менеджера, в которой есть все ваши менеджеры, и используйте SceneManager.LoadScene (, LoadSceneMode.Additive) и SceneManager.UnloadScene для управления ходом игры. "

0 голосов
/ 02 апреля 2019

Если размер шрифта требуется сохранить даже при выключенном приложении

Вы должны использовать PlayerPrefs.

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

В противном случае DontDestroyOnLoad (this); используйте этот код.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...