Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
В большинстве случаев методы подписки и вызова будут выглядеть примерно следующим образом:
// Подписка
EventSystem.Subscribe(тип_события, подписываемый_метод);
// Вызов
EventSystem.RaiseEvent(тип_события, аргументы);
Отличная статья, спасибо!
Мне кажется можно избавиться от рефлексии, если каждый раз при подписке передавать интерфейс в явном виде (но тогда для каждого интерфейса придется вызывать подписку и отписку).
Так же можно добавить асинхронные RaiseEvent - чтобы их можно было авейтить (внутри сделать как Task.WhenAll). Тогда можно будет делать await RaiseEvent<..> и ждать когда все подписчики выполнят свои таски.
EventBus — Система событий для Unity