Трехмерный тир-симулятор, разработанный на Unity. Основной геймплей строится на высокоточной стрельбе по динамическим и физическим мишеням. Реализованы продвинутая система настройки управления с гибким ребайндингом клавиш, а также функциональный редактор сцен
Проект представляет собой симулятор снайперской стрельбы, созданный на движке Unity с использованием C#. Архитектура сосредоточена на модульности и кастомизации пользовательского опыта.
Ключевые реализованные механики:
Система стрельбы и взаимодействия: Реализован централизованный контроллер стрельбы (ShootingController), управляющий логикой попаданий и взаимодействия с целями через систему идентификации объектов (ObjectIdentity). Цели поддерживают параметризованные настройки (например, расстояние и скорость перемещения).
Продвинутые типы мишеней:
Кинематические цели: Скрипт MovingTarget реализует плавное, настраиваемое движение объектов по горизонтали с использованием математической функции для циклического перемещения без рывков.
Физические цели: Компонент SpinnerPhysics создаёт мишень на основе физики Rigidbody и Hinge Joint. Объект получает начальный крутящий момент и реалистично реагирует на попадания, получая дополнительные физические импульсы.
Динамическая камера: Система CameraMover обеспечивает интеллектуальное перемещение камеры. Алгоритм включает в себя механику avoidance — автоматическое обнаружение препятствий с помощью SphereCast и расчёт альтернативной позиции, чтобы игровой обзор не перекрывался стенами или другими объектами.
Кастомизация управления: Разработан полноценный экран настроек управления в UI Toolkit (SettingsUI). Реализована система интерактивного ребайндинга: пользователь может кликнуть на кнопку действия и переназначить клавишу в реальном времени через цикл ожидания ввода Input.anyKeyDown. Все назначенные клавиши сериализуются и сохраняются через PlayerPrefs для постоянного хранения пользовательских предпочтений.
Управление профилями: В интерфейсе карт (MapsUI) интегрирован функционал редактора списка игроков с использованием ListView. Реализованы операции CRUD (создание, чтение, удаление) для профилей игроков. Все изменения (добавление, переименование, удаление) мгновенно сериализуются в бинарный файл данных через кастомный хелпер SaveBinary, обеспечивая персистентность между сессиями игры.
Проект демонстрирует навыки работы с Unity UI Toolkit, физическим движком, системами ввода, а также паттернами сохранения и загрузки данных.