Skip to content

Latest commit

 

History

11 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

📖 Описание проекта

Это симуляция, где мы можем увидеть как дроны собирают ресурсы и несут собственно на базу

🛠️ Реализованные функции

✅ Автономные дроны – самостоятельно ищут и собирают ресурсы

✅ Система состояний (State Pattern) – плавные переходы между поиском сбором и доставкой

✅ Разделение ответственностей – движение, сбор ресурсов и AI логика разделены

✅ Генерация ресурсов – случайное появление ресурсов на карте

✅ Две команды – синие и красные дроны со своими базами

✅ Гибкая настройка – параметры игры настраиваются через ScriptableObject

Архитектура проекта

Основные компоненты

  1. Дроны (Drone) IDrone – главный интерфейс дрона

IMove – отвечает за движение (DroneMove)

IResourceCollector – сбор и доставка ресурсов (DroneResourceCollector)

IStateMachine – управление состояниями (DroneStateMachine)


  1. Состояния дронов (State Pattern) SearchingState – поиск ближайшего ресурса

MovingState – движение к ресурсу

CollectingState – сбор ресурса (таймер)

ReturnState – возвращение на базу

DeliveringState – доставка ресурса


  1. Базы (Base) IBase – хранит количество ресурсов

AddResource() – увеличивает счетчик при доставке


  1. Ресурсы (Resource) IResource – интерфейс ресурса

Collect() – помечает ресурс как собранный


  1. Генерация и управление DroneFactory – создает дронов (Абстрактная фабрика)

DroneSpawner – спавнит дронов для каждой базы

ResourceSpawner – генерирует ресурсы на карте

DroneGameSettingsSO – настройки через ScriptableObject


Использованные инструменты и подходы

Паттерны проектирования:

State – управление поведением дронов

Factory – создание дронов

Dependency Injection – внедрение зависимостей (IResourceProvider, IMove)

Interface Segregation (ISP) – разделение интерфейсов (IMove, IResourceCollector)


Unity-инструменты NavMeshAgent – навигация дронов

ScriptableObject – гибкие настройки игры

MonoBehaviour + чистый C# – разделение Unity-логики и бизнес-логики


Дрон работает ровно как отмечено в задании:

Поиск (SearchingState) → Находит ближайший ресурс

Движение (MovingState) → Летит к ресурсу

Сбор (CollectingState) → Забирает ресурс (2 сек)

Возврат (ReturnState) → Летит на базу

Доставка (DeliveringState) → Сбрасывает ресурс (1 сек)

Повтор → Снова ищет ресурс

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages