6c46b3043a
- Create 7 new task files (TASK-0001 through TASK-0007) - Add task template file for future use - Update Agent.md with project information - Update TASK.md with task tracking
2.5 KiB
2.5 KiB
TASK-0001: Composition Root и зависимости
Цель
Настроить корневую точку композиции проекта через VContainer так, чтобы orchestration-логика жила в plain C# классах, а MonoBehaviour использовались только как View-компоненты сцены.
Что сделать
- Создать
GameLifetimeScope. - Зарегистрировать сервисы и контроллеры через VContainer как managed dependencies.
- Зарегистрировать
BootstrapEntryPointкак entry point приложения. - Зарегистрировать
BootStatesControllerкакIStatesController<BootStateCode>и при необходимости как self. - Зарегистрировать
SplashState,LoadState,MenuState. - Зарегистрировать scene View через
RegisterComponent(...). - Зарегистрировать settings asset через
[SerializeField]иRegisterInstance(...).
Технические требования
- Использовать VContainer.
- Сервисы регистрировать через
builder.Register<Impl>(Lifetime.Singleton).As<IInterface>(). - Не использовать
RegisterInstance(...)для сервисов и controller-объектов. RegisterInstance(...)использовать только для settings/config assets.- Не использовать
FindObjectOfType,Singleton.Instanceиstatic-хранилища состояния. - MonoBehaviour не должны содержать orchestration-логику boot flow.
Критерии готовности
- В сцене есть один
GameLifetimeScope. - Все boot flow зависимости собираются через VContainer.
- View-компоненты подключаются через ссылки из сцены, а не через поиск объектов.
- Entry point запускается контейнером.
- Сервисы и state machine не создаются вручную через
newвнутри MonoBehaviour.
Заметки
Scene View допустимо регистрировать как компоненты, потому что они физически живут в сцене. Settings asset допустимо регистрировать через RegisterInstance(...), потому что это данные, а не сервис с жизненным циклом.