В любой игре постоянно что-то происходит. Один персонаж нанес урон дургому, заспавнилась пачка мобов, кто-то нажал паузу, или прозвенел победный гонг. У одной части системы изменилось состояние, а другая произвела какое-то действие. В этой статье мы разберем паттерн – наблюдатель. Разработчики используют его даже не задумываясь, ведь в C# уже есть события. У вас может возникнуть справедливый вопрос, если есть события, то о чем может идти речь, паттерн реализуется средствами языка автоматически, тут есть внушительная доля истины, но все таки нередки ситуации, когда в Update разработчик что-то обновляет, изменяя состояние сущностей. Либо в Coroutine ждет пока произойдет какое-то действие. В этой статье мы рассмотрим реализацию паттерна наблюдатель, несколько вариаций его использования и еще парочку интересных вещей. Предположим, у нас стоит задача написать модуль обновления конфигурации игры. Геймдизайнер хочет обновлять данные игры с помощью админ панели. Обновлять нужно будет базовые