gamebox-workshop-arcade
ТЗ на Gamebox Практикум для направления Unity
Автор: Войнаренко Сергей Михайлович
Билд: ссылка
Управление:
W, A, S, D / Стрелки управления курсором — перемещение героя
Клик левой кнопкой мыши — атака
Клик правой кнопкой мыши — перезарядка
Вращение колеса мыши — увеличение / уменьшение масштаба
Escape — пауза
Структура проекта:
/Imported — дополнительные сторонние библиотеки
/Materials — материалы
/Plugins — внешние плагины
/Prefabs/
Hero — префабы игрока и боеприпаса
Hud — префабы HUD и дочерних элементов
Infrastructure — префабы, необходимые для запуска игры
Level — префабы элементов игрового уровня
UI — префабы окон
/Resources/StaticData — классы
с настройками
/Scenes/
Initial — сцена инициализации
Menu — сцена главного меню
Main — сцена игрового уровня
EndGame — сцена завершения игры
/Scripts/
Infrastructure/
— точка входа в игру
— загрузчик сцен
States/
— машина состояний игры
Data — классы, содержащие динамические данные и статические методы
Services/
Input/
— сервис пользовательского ввода
Loot/
— сервис выпадающих предметов
Progress/
— сервис прогресса игрока
StaticData/
— сервис статичных данных
Window/
— сервис окон пользовательского интерфейса
— контейнер сервисов для внедрения зависимостей
Logic — вспомогательные и общие классы
Factory/
— основная фабрика
— фабрика выпадающих предметов
— фабрика пользовательского интерфейса
UI — классы пользовательского интерфейса
Level — классы игрового уровня
Hero — классы героя
Bullet — классы боеприпаса
/Settings/InputSystem — настройки
Иерархия объектов в сценах:
GameRunner — вспомогательный объект, создающий GameBootstrapper
Main Camera — основная камера
Virtual Camera — виртуальная камера Cinemachine
Directional Light — источник света
EventSystem — объект, содержащий обработчики входа, рэйкастинга и отправки событий
Plane — плоскость для конвертации координат курсора
NavMeshSurface — навигационная сетка
NavMeshGenerator — вспомогательный объект для рантайм инициализации NavMeshSurface
InputSupport — вспомогательный объект для отслеживания пользовательского ввода
Архитектура:
— точка входа. При запуске инстанциирует из префаба загрузочную штору
, создаёт новый экземпляр класса
, переводит машину состояний в
и переносит себя в
.
В
происходит регистрация всех сервисов, после чего происходит переход в
.
В
инициируется новый прогресс игрока или загружается сохранённый, происходит переключение в
и загружается сцена Menu.
Внедрение зависимостей происходит в
для каждого из состояний, а для создаваемых объектов — в соответствующих фабриках.
Описание
ТЗ на Gamebox Практикум для направления Unity июнь 2024
Языки
C#
- ShaderLab
- GLSL
- HLSL