• Есть ли в юнити глобальные переменные?

    BasmanovDaniil
    @BasmanovDaniil
    Геймдизайнер-телепат
    В юнити, а точнее в c# нет глобальных переменных. Существуют статические переменные и константы, которыми можно пользоваться для хранения глобальной информации, но весьма сомнительно, что вам нужна действительно глобальная доступность. Скорее всего, у вас есть несколько классов, которые из-за неправильного разделения обязанностей вынуждены залезать друг в друга для синхронизации состояния. Это решается только переорганизацией кода, глобальные переменные и синглтоны дело только усугубят.
    В контексте юнити для разрешения зависимостей хорошо работает техника dependency injection, которая реализована во многих фреймворках, например в Zenject. Помимо этого, в юнити есть ScriptableObject, который очень удобен для хранения конфигов, позволяет легко передавать их между классами и редактировать в рантайме. Думаю, этих двух вещей должно быть достаточно для начала, остальное придёт с практикой.
    Ответ написан
    Комментировать