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