gamebox-workshop-arcade

Форк
0

README.md

ТЗ на Gamebox Практикум для направления Unity

Автор: Войнаренко Сергей Михайлович

Билд: ссылка

Управление:

W, A, S, D / Стрелки управления курсором — перемещение героя

Клик левой кнопкой мыши — атака

Клик правой кнопкой мыши — перезарядка

Вращение колеса мыши — увеличение / уменьшение масштаба

Escape — пауза

Структура проекта:

/Imported — дополнительные сторонние библиотеки

/Materials — материалы

/Plugins — внешние плагины

/Prefabs/

  Hero — префабы игрока и боеприпаса

  Hud — префабы HUD и дочерних элементов

  Infrastructure — префабы, необходимые для запуска игры

  Level — префабы элементов игрового уровня

  UI — префабы окон

/Resources/StaticData — классы ScriptableObject с настройками

/Scenes/

  Initial — сцена инициализации

  Menu — сцена главного меню

  Main — сцена игрового уровня

  EndGame — сцена завершения игры

/Scripts/

  Infrastructure/

   GameBootstrapper.cs — точка входа в игру

   SceneLoader.cs — загрузчик сцен

   States/GameStateMachine.cs — машина состояний игры

  Data — классы, содержащие динамические данные и статические методы

  Services/

   Input/InputService.cs — сервис пользовательского ввода

   Loot/LootService.cs — сервис выпадающих предметов

   Progress/ProgressService.cs — сервис прогресса игрока

   StaticData/StaticDataService.cs — сервис статичных данных

   Window/WindowService.cs — сервис окон пользовательского интерфейса

   AllServices.cs — контейнер сервисов для внедрения зависимостей

  Logic — вспомогательные и общие классы

  Factory/

   GameFactory.cs — основная фабрика

   LootFactory.cs — фабрика выпадающих предметов

   UiFactory.cs — фабрика пользовательского интерфейса

  UI — классы пользовательского интерфейса

  Level — классы игрового уровня

  Hero — классы героя

  Bullet — классы боеприпаса

/Settings/InputSystem — настройки InputSystem

Иерархия объектов в сценах:

GameRunner — вспомогательный объект, создающий GameBootstrapper

Main Camera — основная камера

Virtual Camera — виртуальная камера Cinemachine

Directional Light — источник света

EventSystem — объект, содержащий обработчики входа, рэйкастинга и отправки событий

Plane — плоскость для конвертации координат курсора

NavMeshSurface — навигационная сетка

NavMeshGenerator — вспомогательный объект для рантайм инициализации NavMeshSurface

InputSupport — вспомогательный объект для отслеживания пользовательского ввода

Архитектура:

GameBootstrapper.cs — точка входа. При запуске инстанциирует из префаба загрузочную штору _curtainPrefab, создаёт новый экземпляр класса Game, переводит машину состояний в BootstrapState и переносит себя в DonDestroyOnLoad.

В BootstrapState происходит регистрация всех сервисов, после чего происходит переход в LoadProgressState.

В LoadProgressState инициируется новый прогресс игрока или загружается сохранённый, происходит переключение в LoadMenuState и загружается сцена Menu.

Внедрение зависимостей происходит в GameStateMachine для каждого из состояний, а для создаваемых объектов — в соответствующих фабриках.

Описание

ТЗ на Gamebox Практикум для направления Unity июнь 2024

Языки

C#

  • ShaderLab
  • GLSL
  • HLSL
Сообщить о нарушении

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.