# Race Fields ![Race Fields](Docs/cover.png) Race Fields - Unity-проект аркадной гонки в полевом сеттинге. Основная заготовка проекта строится вокруг управляемого багги, камеры третьего лица, заготовок игровых режимов, усилений, оружия, VR/arcade cabinet модулей и структуры для дальнейшего наполнения трассами, префабами и данными. ## Требования - Unity `6000.5.1f1` - Universal Render Pipeline `17.5.0` - Input System `1.19.0` - Unity Test Framework `1.7.0` Версия Unity зафиксирована в `ProjectSettings/ProjectVersion.txt`, зависимости - в `Packages/manifest.json`. ## Быстрый старт 1. Откройте корень проекта в Unity Hub. 2. Используйте Unity `6000.5.1f1` или совместимую версию Unity 6. 3. Откройте сцену `Assets/_Project/Scenes/Demo Scene.unity`. 4. Запустите Play Mode. Базовое управление багги: - `W` / `Up Arrow` - газ - `S` / `Down Arrow` - назад - `A` / `Left Arrow` - поворот влево - `D` / `Right Arrow` - поворот вправо - `Space` - тормоз ## Основные сцены - `Assets/_Project/Scenes/Demo Scene.unity` - рабочая демо-сцена проекта. - `Assets/Scenes/SampleScene.unity` - стандартная примерная сцена Unity, оставлена отдельно от основной структуры проекта. ## Структура проекта ```text Race_fields/ +-- Assets/ | +-- _Project/ # основной код и ресурсы игры | | +-- Art/ # визуальные ассеты: модели, материалы, текстуры, UI, VFX, terrain | | +-- Audio/ # музыка, звуковые эффекты и голосовые ассеты | | +-- Prefabs/ # игровые префабы: техника, камеры, окружение, UI, оружие, VFX | | +-- Scenes/ # основные сцены проекта | | +-- ScriptableObjects/ # игровые настройки и данные: режимы, трассы, транспорт, оружие | | +-- Scripts/ # C#-код проекта | | +-- Settings/ # настройки Addressables, билда, ввода, физики и рендера | | +-- Tests/ # EditMode и PlayMode тесты | | +-- ThirdParty/ # сторонние ассеты, которые относятся к проекту | +-- 300Mind/ # импортированный 2D Game UI Kit | +-- Scenes/ # стандартные/вспомогательные сцены Unity | +-- Settings/ # общие настройки ассетов Unity | +-- TutorialInfo/ # стандартные tutorial-ассеты Unity | +-- _Recovery/ # восстановленные/резервные ассеты Unity +-- Docs/ # изображения и материалы для документации +-- Packages/ # Unity Package Manager manifest и lock-файлы +-- ProjectSettings/ # настройки проекта Unity +-- UserSettings/ # локальные настройки редактора +-- Logs/ # локальные логи Unity +-- Library/ # кеш Unity, не хранится в репозитории +-- Temp/ # временные файлы Unity +-- obj/ # временные файлы сборки IDE/.NET ``` ## Код Код проекта хранится в `Assets/_Project/Scripts/` и разделен по игровым подсистемам: - `Vehicles/` - управление транспортом, колеса, мотор, подвеска и визуальная синхронизация. - `Camera/` - камеры игры, включая `BuggyFollowCamera` для камеры третьего лица. - `Input/` - ввод для клавиатуры/геймпада, AI, VR и arcade cabinet. - `GameFlow/` - сессии, состояния игры и будущая машина состояний. - `GameModes/` - режимы игры: arena, challenges, survival race, tournament. - `PowerUps/` - усиления: boost, repair, shield и специальные эффекты. - `Weapons/` - оружие, ракеты, мины, шок-эффекты и targeting. - `Damage/` - урон, разрушаемые объекты и эффекты повреждений. - `Harvesters/` - логика комбайнов/сборщиков, AI, звук и визуальная часть. - `World/` - трассы, чекпоинты, hazards, spawners и сегменты мира. - `UI/` - HUD, меню, гараж, результаты и операторская панель. - `VR/` - VR rig, комфорт и калибровка. - `ArcadeCabinet/` - модули для аркадного автомата: hardware, payments, diagnostics, calibration. - `Editor/` - редакторские инструменты, включая сборку префабов багги. - `Core/`, `Data/`, `Utilities/` - общие сервисы, данные и вспомогательные классы. ## Полезные редакторские инструменты В проекте есть editor-команда: ```text Race Fields/Setup/Rebuild Buggy Prefab ``` Она пересобирает префаб багги `Assets/_Project/Prefabs/Vehicles/Player/Buggy_Player.prefab`, настраивает физику колес и обновляет префаб камеры `Assets/_Project/Prefabs/Cameras/Buggy_ThirdPersonCamera.prefab`. ## Документация и ассеты README - `README.md` - основное описание проекта. - `Docs/cover.png` - изображение, используемое в шапке README.