При нажатии на кнопку Start вызывается GameController.TryStartGame(). Игра стартует, остальные контроллеры по событию GameController.OnGameStartEvent начинают выполнять свои функции (спаун кирпичей и шарика).
По выполнению определённых действий, таких как
- Попадание шарика на красную полосу
- Попадание кирпичей на красную полосу
- Уничтожение всех кирпичей
триггерится событие в GameModel (OnGameWonEvent, OnGameLostEvent. В зависимости от результата). По этим событиям срабатывает GameController.TryEndGame().
Есть возможность сконфигурировать геймплей, шарик и кирпичи. Их конфиги вынесены в соответствующие ScriptableObject (Assets/Configs).