мне вот очень хочется понять как грамотно реализовать системы управления объектами. Нормально ли там выводить состояние игры в отдельный компонент и добавлять к каждому объекту, который должен знать/менять состояние игры и все такое
Если в кратце, то есть monobehaviour, который содержит в себе функции ивенты типа start, update и который наследуется от component, что позволяет вешать его на объект(если я ничего не путаю). Если тебе нужен компонент - наследуется от монобеха, если просто какой-то класса то нет. Потом компоненты можно вешать на геймобжекты и на каждом компоненте будут срабатывать функции ивенты. Остальное можешь посмотреть в доках, туториалах и т п. Паттерны те же по сути, что и везде(ну можешь погуглить паттерны в геймдеве), ничего разительно отличающеесяго нету, ща исключением готового инструментария