Перейти к содержимому

Как добавить маркеры врагов и союзников на радар в Unreal Engine 5 | UI, часть 4

Dev-initely Mario

0:00 / 0:00

Как добавить маркеры врагов и союзников на радар в Unreal Engine 5 | UI, часть 4

72 просмотра · 13 дней назад
Dev-initely Mario
254 подписчика
72 просмотра · 13 дней назад
В этом уроке по Unreal Engine 5 мы продолжаем расширять наш радар целей, добавляя динамические маркеры врагов и товарищей по команде. До сих пор наш радар отображал карту в реальном времени с видом сверху, направления компаса, положение игрока, маркер цели и расстояние до цели. Теперь мы превращаем его в гораздо более многоразовую систему радара. Вместо прямого подключения радара к конкретной системе ИИ или многопользовательской игре, мы идентифицируем акторов с помощью простых тегов акторов. Это означает, что одна и та же логика радара может работать как в одиночных, так и в многопользовательских проектах, независимо от вашей конфигурации репликации. Для этого урока мы используем: Radar_Enemy Radar_Teammate Любой находящийся поблизости актор с одним из этих тегов может автоматически получить правильный значок радара. Сначала мы создаем многоразовые значки врагов и товарищей по команде, а затем создаем один универсальный виджет WBP_RadarActorMarker, который может представлять различные типы акторов радара. Каждый маркер хранит информацию об отслеживаемом в данный момент объекте и получает его иконку во время инициализации. После этого мы добавляем отдельный холст маркера к нашему радару Compass и создаём необходимые для системы переменные, включая: Метки врагов и товарищей по команде Иконки врагов и товарищей по команде Буфер сканирования радара Интервал сканирования радара Максимальное расстояние радара Обнаруженные объекты радара Карта маркеров радара Вместо постоянного поиска по всему уровню мы используем перекрытие сфер вокруг локального игрока. Радиус сканирования основан на текущем диапазоне радара плюс дополнительный буфер. Это обеспечивает гораздо лучшую основу для производительной системы радара, поскольку необходимо учитывать только находящиеся поблизости объекты. Затем мы регистрируем каждого допустимого врага или товарища по команде и сохраняем связь между объектом мира и его виджетом на карте. Это предотвращает создание дубликатов маркеров каждый раз, когда радар сканирует окружающую среду. Мы также добавляем логику очистки, чтобы маркеры можно было снова удалять, когда объект больше не является частью текущего сканирования радара. Наконец, мы создаём UpdateRadarActors. Эта функция вычисляет расстояние и направление между игроком и каждым отслеживаемым объектом и преобразует мировое положение объекта в правильное 2D-положение на нашем радаре. Таким образом, маркеры врагов и товарищей по команде могут динамически перемещаться по карте с видом сверху. Мы также разделяем ресурсоёмкое сканирование объектов и визуальное обновление маркеров: Сканирование объектов радаром: 0,5 секунды / 2 раза в секунду Визуальное обновление радара: использует наше существующее быстрое обновление радара Это даёт нам гораздо более чистую основу для готового к использованию радара, который мы создаём. ВАЖНО: В конце этого видео маркеры врагов и товарищей по команде успешно обнаружены и отображены, но всё ещё существует проблема с позиционированием, когда объекты приближаются к игроку. В следующем видео мы исправим оставшуюся проблему с радарными маркерами, прежде чем перейдём к рассмотрению других типов радарных акторов. Ресурсы пользовательского интерфейса радара: https://drive.google.com/drive/u/0/fo... Что вы узнаете: Как добавить маркеры врагов на радар Как добавить маркеры товарищей по команде на радар Как использовать теги акторов для многоразовой системы радара Как поддерживать одиночную и многопользовательскую игру Как создать многоразовый виджет маркеров радара Как отслеживать несколько акторов одновременно Как использовать акторы с перекрытием сфер Как создать радиус сканирования радара Как использовать буфер сканирования радара Как хранить ссылки на акторов и виджеты на карте Как избежать дублирования маркеров радара Как удалить старые маркеры радара Как рассчитать расстояние до актора Как рассчитать относительное направление радара Как преобразовать мировые позиции акторов в позиции радара Как отделить сканирование радара от визуального отображения Обновления Разделы: 0:00 Введение 0:57 Предварительный просмотр конечного результата 1:45 Импорт значков врагов и товарищей по команде 2:37 Добавление метки радара врагов 3:09 Создание тестового актора товарища по команде 4:57 Подготовка значков радара 5:33 Создание универсального виджета маркера радара 7:06 Отслеживание акторов внутри маркера 7:38 Создание инициализированного маркера 9:01 Добавление холста маркера актора 10:32 Создание настроек врагов и товарищей по команде 12:45 Добавление буфера сканирования и интервала сканирования 14:56 Создание карты маркеров радара 16:13 Создание акторов ScanRadarActors 17:05 Перекрытие сфер вокруг игрока 18:36 Использование максимального расстояния радара + буфер 20:27 Проверка меток врагов и товарищей по команде 22:11 Создание RegisterRadarActor 24:20 Предотвращение дублирования маркеров 25:30 Создание динами...