47 lines
3.3 KiB
Markdown
47 lines
3.3 KiB
Markdown
# QuizPleaseTest Boot Flow
|
|
|
|
Unity-проект с загрузочным flow через собственную state machine, VContainer, UniTask и UniRx.
|
|
|
|
## Версия и пакеты
|
|
|
|
- Unity: `2022.3.62f3`
|
|
- Стартовая сцена: `Assets/Scenes/SampleScene.unity`
|
|
- DI: `VContainer`
|
|
- Async: `UniTask`
|
|
- Reactive: `UniRx`
|
|
- UI: `uGUI`, `TextMeshPro`
|
|
|
|
## Как запустить
|
|
|
|
1. Открыть проект в Unity `2022.3.62f3` или совместимой Unity 2022 LTS.
|
|
2. Открыть сцену `Assets/Scenes/SampleScene.unity`.
|
|
3. Убедиться, что на сцене есть `GameLifetimeScope`, `Canvas`, `EventSystem`, `Text (Data_Status)` и `Slider`.
|
|
4. Нажать `Play`.
|
|
|
|
## Как проверить сценарий
|
|
|
|
1. После старта статус должен стать `Splash`.
|
|
2. Затем должен начаться этап `Loading 0%`.
|
|
3. Во время загрузки статус должен обновляться до `Loading 100%`.
|
|
4. `Slider` должен двигаться от `0` к `1`.
|
|
5. После загрузки статус должен стать `Menu`.
|
|
6. Нажать кнопку `Restart`.
|
|
7. После нажатия должен снова выполниться цикл `Loading -> Menu`.
|
|
8. При остановке Play Mode на `Menu` не должно быть `MissingReferenceException`.
|
|
|
|
Фактически потраченное время: 1 час 40 минут + 20 минут на написание текста
|
|
|
|
Дополнительно можно изменить BootSettings для проверки.
|
|
|
|
## Что бы я доделал, будь еще 2 часа
|
|
|
|
- Добавил бы Unit/Edit Mode тесты для быстрой проверки state machine, restart-сигнала и порядка `Exit -> Enter`, с комментариями к сценариям.
|
|
- Настроил бы workflow для автобилдов, чтобы на каждый push проверялись компиляция и базовый build.
|
|
- Добавил бы отдельный build-скрипт, который можно запускать локально и в CI одной командой.
|
|
- Добавил бы tween-анимации для появления экранов и progress bar. В идеале сделал бы свои простые tweeners под задачу, а не тянул лишнюю абстракцию (и плагины).
|
|
- Вынес бы тексты статусов в settings/localization-ready слой, чтобы не держать строки внутри states.
|
|
- Добавил бы нормальный визуальный layout для Splash, Loading и Menu вместо минимального UI. Вероятно на основе готового ассета, для экономии времени.
|
|
- Добавил бы Play Mode тест полного цикла `Splash -> Load -> Menu -> Restart -> Load`.
|
|
- Добавил бы обработку ошибок загрузки и отдельное error-state поведение.
|
|
- Нормально собрал в Prefab экраны и вынес бы текст как отдельный префаб, чтобы можно было по всему проекту быстро менять шрифт.
|