Skip to content

derhab/RunnerTest

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 

Repository files navigation

RunnerTest

Код самого проекта находится в папке https://github.com/derhab/RunnerTest/tree/master/Assets/Runner

Для внедрения зависимостей в архитектуре игры использован Zenject.
Для большей гибкости используются Addressables для загрузки сцен, что позволяет при необходимости быстро настроить загрузку удаленной сцены.
Из сторонних программных ассетов используется DOTween и еще пара ассетов для удобной сериализации словаря и интерфейсов в инпекторе.

Структура проекта в юнити представляет собой 3 сцены

  • загрузочная сцена
  • стартовая сцена (предполагается что там могут быть какие-то настройки, но в текущей версии не реализовано) с кнопкой play дял входа в игровую сцену
  • собственно игровая сцена (из нее можно вернуться в стартовую сцену).

Точка входа в приложение - GameManager, который инициализирует стейт машину игры.
Инициализация игрового уровня в LevelInitializer.
Сама суть задания - поведения/эффекты, которые можно применять, реализованы в виде сущностей, которые могут быть добавлены или удалены на персонажа или на любую сущность реализующую ICharacter, динамически.
Сам персонаж при этом ничего не знает об эффекте который на него наложен, кроме того что у него имеется список объектов реализующих IBuffObject Само действие эффектов реализовано в конкретных объектах, расширяющих BuffObject и реализующих IBuffObject Каждый тип эффекта имеет конфиг, который настраивается в инспекторе (ScriptableObject). Конфиг передается в конструктор эффекта при его создании.
Управление наложением/удалением эффектов осуществляется в BuffsManager.
Согласно условию задания в текущей реализации имеем 3 типа эффектов, которые накладываеются последовательно по наступлению соотв. условий и этот процесс зациклен.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published