Что это: EM — глобальный event manager для игровых состояний, паузы и нескольких системных событий приложения. Файл: Scripts/Tools/Managers/EM.cs, пространство имён: Neo.Tools.
Как использовать:
- Добавьте
EMна сцену как один из глобальных менеджеров. - Подпишите UI, звук, аналитику и другие системы на нужные
UnityEvent. - Вызывайте статические методы
EM.Menu(),EM.GameStart(),EM.Pause()и другие, если нужно вручную разослать событие. - Обычно состояния выставляет
GM, аEMиспользуется как транспорт событий.
- On Menu, On Preparing, On Game Start — вход в меню, подготовку, старт игры.
- On Restart, On Stop Game — рестарт и остановка.
- On Win, On Lose, On End — победа, поражение, конец.
- On State Change — изменение
GM.GameStateс передачей нового состояния. - On Pause / On Resume — переходы паузы.
- On Player Death — отдельное событие смерти игрока.
- On Awake / OnFocusApplication / OnPauseApplication / OnQuitApplication — Unity lifecycle и состояние приложения.
| Метод | Что делает |
|---|---|
Preparing() |
Вызывает OnPreparing. |
GameStart() |
Вызывает OnGameStart. |
Lose() |
Вызывает OnLose. |
Win() |
Вызывает OnWin. |
End() |
Вызывает OnEnd. |
StopGame() |
Вызывает OnStopGame. |
PlayerDied() |
Вызывает OnPlayerDeath. |
Pause() |
Вызывает OnPause. |
Resume() |
Вызывает OnResume. |
Menu() |
Вызывает OnMenu. |
Restart() |
Вызывает OnRestart. |
Используйте EM, если:
- нужно разослать одно событие нескольким системам без жёстких ссылок между ними;
- требуется простой inspector-driven event hub;
- важно отделить изменение состояния игры от реакции на него.
Типичная цепочка такая:
GMменяет своё состояние.GMвызывает соответствующий методEM.EMрассылаетUnityEvent.- UI, звук, туториалы, эффекты и аналитика реагируют независимо друг от друга.
EMудобно использовать вместе сGM, но он не обязан зависеть только от него.- Если зависимость опциональна, безопаснее получать менеджер через
EM.TryGetInstance(out EM manager)вместо прямогоEM.I.