Вам необходимо отделить логику игрового состояния от логики состояния вне игры.
Например, один из моих проектов имеет статический 1 класс для хранения всей статистики 2 Я заинтересован в том, чтобы не полагаться на компонент MonoBehaviour.Этот класс статистики также обрабатывает сериализацию и десериализацию для статистики, хотя это не обязательно.
Я также создал специальный HighScore
класс для обработки значений, которые могут бытьсбросить, но я все еще хочу знать, какое было «лучшее» значение, которое когда-либо хранилось.
Не собираюсь говорить, что мой код лучший, просто вот принципы, которым вы должны следовать.
1 Статические поля также позволяют мне получать доступ к этим свойствам из любого места.
2 Все они по-прежнему значения игрового состояния для этого конкретного проекта, но они будутвсе еще сохраняются, если бы я сменил сцену