Подробный список изменений: - Объект wrapVisualCloneRoot сделан дочерним к transform игрока. - Внедрен метод RebuildWrapCollider для автоматического дублирования основного коллайдера игрока (Box/Circle/Capsule) на wrapVisualCloneRoot. - В Unity дочерние коллайдеры при наличии Rigidbody2D на родителе автоматически формируют Compound Collider (составное физическое тело). Это позволило собирать монеты, активировать пружины и получать урон от врагов визуальным клоном на противоположной стороне экрана. - В методе CopyWrappedVisuals сменено позиционирование клонов SpriteRenderer на локальные координаты для предотвращения графических артефактов при переносе.
Danro Jump
Danro Jump — Unity-проект вертикального платформера в духе Doodle Jump, развиваемый как коммерчески применимая игровая система с аппаратной интеграцией, денежным балансом, призовой витриной, выдачей QR-призов и сервисным контуром для обслуживающего персонала.
Проект ориентирован не только на аркадный игровой цикл, но и на эксплуатацию на целевом автомате: запуск через защищённый startup-flow, работу с внешними устройствами по COM, настройку экономики без пересборки, диагностику, выдачу призов и сохранение важных эксплуатационных данных.
Целевая концепция
Основные направления продукта:
- быстрый вертикальный платформер с короткой игровой сессией;
- рост высоты, набор очков, монет и прогрессирующая сложность;
- денежный баланс для платного старта и
continue; - интеграция с внешним оборудованием по
COM-порту; - выдача малых и больших призов через призовую витрину;
- выдача призов или бонусов через
QR-коды; - сервисное меню для персонала с настройками, статистикой и служебными действиями;
- подготовка к длительной работе на целевом автомате.
Текущий статус
Текущая рабочая версия содержит широкий gameplay-, экономический и infrastructure-контур:
- Unity
6000.4.9f1; - сцены
Bootstrap,MainMenuиGameдобавлены в Build Settings; - старт приложения проходит через
Bootstrapи сервисные runtime-системы; - настроены
Extenject,ProjectContext, scene installers иSceneFlowService; - есть главное меню на UI Toolkit с правилами, настройками, фокусом клавиатуры/геймпада и переходом в игру;
- реализован вертикальный gameplay loop: игрок, камера, прыжки, платформы, смерть, respawn, game over и возврат в меню;
- есть HUD для счёта, высоты, рекорда, жизней, монет, смертей и состояния сессии;
- реализованы платформы, оборудование, коллектаблы, враги, weighted-spawn и ScriptableObject-прогрессия сложности;
- реализован и стабилизирован джетпак с подъёмом, блокировкой контактов, attach/detach, падением и VFX;
- есть COM-система: serial-транспорт, авторизация, роли устройств, входные биты, ADC, платёжные импульсы, денежный баланс, статусы призовых ячеек и команды открытия;
- есть кастомное устройство Input System для COM-контроллера;
- платный старт и continue через денежный баланс со списанием и проверкой достаточности;
- призовой flow:
PrizeFlowServiceоценивает сессию по таблице призовых уровней и определяет тип награды; - экраны continue (
ContinueGameOverlayWindow) и результата приза (PrizeResultOverlayWindow); - таблица призовых уровней с JSON-сериализацией и CRUD через сервисное меню;
- сервисное меню с маршрутизацией кнопок: статистика, настройки призов, QR, витрина, телефон, суперприз, поддержка, валюта, тест выдачи;
- модальные окна: настройки, правила, информационные, текстовый ввод, таблица и добавление призовых уровней;
- сервисные настройки загружаются через Addressables/fallback, сохраняются в JSON и доступны через UI;
- есть debug-модуль с каналами логирования, Unity Console/file handlers и development overlay;
- заведены EditMode и PlayMode-тесты для ключевых подсистем.
Архитектура
Gameplay
GameplaySession— управляет состоянием забега: очки, монеты, жизни, смерти, высота, рекорд, continue и призовой flowPlatformSpawner/PlatformContentSpawner— спавн платформ и контента по весовым профилямGameplayDifficultyProgression— ScriptableObject-прогрессия сложности по этапамJumpPlayerController— управление игроком, прыжки, смерть, respawnVerticalCameraFollow— вертикальное слежение за игроком
Экономика и призы
PrizeFlowService/IPrizeFlowService— оценка завершённой сессии и определение типа наградыPrizeLevelTable— таблица призовых уровней с привязкой к порогам очков (JSON)PrizeRewardKind— типы наград:None,Small,Big,QRCode,Hopper,PrizeStandPrizeResultOverlayWindow— полноэкранный результат выдачи призаContinueGameOverlayWindow— экран предложения продолжить игру за баланс
Сервисное меню
SettingsModalWindow— динамическое построение UI настроек изServiceSettingsDatabaseServiceSettingsActionRouter— маршрутизация кнопок сервисного меню в действияPrizeLevelsModalWindow/PrizeLevelAddModalWindow— управление таблицей призовых уровнейServiceTextInputModalWindow— текстовый ввод для телефонов и строковых настроекServiceInfoModalWindow— отображение результатов сервисных действийModalStackController— управление стеком модальных окон
Аппаратура
ComSystem— управление COM-устройствами: авторизация, кредиты, ввод, подсветка, призовая витринаComLightingSystem— аппаратная подсветка: board effects, hat blink, prize showcaseComControllerInputBridge— кастомное устройство Input System для COM-контроллераReflectionSerialComTransport/ReflectionComPortProvider— транспортный слой через System.IO.Ports
Инфраструктура
BootstrapEntryPoint/StartupProtectionService— защищённый startup-flowSceneFlowService— централизованная загрузка сценServiceSettingsService— чтение, применение и сохранение сервисных настроекDebugLogService— каналы логирования, Unity Console и файловый handler
Технологическая база
- Unity 6;
- Universal Render Pipeline для 2D;
- Input System;
- UI Toolkit;
- Test Framework;
- Extenject;
- UniTask;
- Addressables;
- DOTween;
- NuGet for Unity;
- локальная документация и проектные гайды в
GUIDES.
Структура репозитория
Assets/Scripts/Runtime/— runtime-код, разбитый по подсистемам:Gameplay,Hardware/Com,Prizes,Settings,UI,Bootstrap,SceneFlow,Debugging;Assets/Scripts/Editor/— редакторские расширения;Assets/Tests/— EditMode и PlayMode тесты;Assets/Scenes/— сценыBootstrap,MainMenu,Game;Packages/— зависимости проекта и пакетная конфигурация Unity;ProjectSettings/— настройки Unity-проекта;GUIDES/— проектные гайды по архитектуре, пакетам, workflow и инфраструктуре;ROADMAP.md— актуальная дорожная карта проекта;.codex/— локальные настройки агентной работы и RAG/MCP-инфраструктуры.
Legacy reference
В Assets/Temp/Legacy сохранён архив старых материалов, которые используются как reference для миграции идей, API и сценариев. Этот код не следует подключать к runtime целиком.
Наиболее ценные направления для аккуратного переиспользования:
- аппаратный слой и COM-протокол;
- призовая витрина;
- QR-выдача;
- сервисные настройки;
- статистика и эксплуатационные UI-сценарии.
Перенос должен идти через новые интерфейсы, сервисы и UI-представления проекта, а не через прямой импорт старых managers/controllers.