Друзья, приветствую, с Вами Будуев Антон. В данной статье мы рассмотрим очередные Blueprint-функции игрового движка Unreal Engine (UE4, UE5) — Actor Has Tag и Component Has Tag.
Вскоре выйдет моя бесплатная книга по Blueprints для Unreal Engine в PDF формате. Как она выйдет, рекомендую её скачать, чтобы Вы детально изучили блюпринты Анрил Энджин.
Actor Has Tag
В Unreal Engine функция Actor Has Tag используется для проверки, присвоен ли определённый тег проверяемому объекту Actor. Функция принимает в качестве параметра имя тега и возвращает булево значение True, если указанный тег имеется в наличие у Actor, и значение False в противном случае. Это позволяет выполнять определённую логику в зависимости от наличия или отсутствия у Actor определенного тега.
Параметры:
- Target (Actor, по умолчанию Self) — Актор, который нужно проверить на наличие тега.
- Tag (name, по умолчанию None) — имя тега. Внимание! У имени тега нет чувствительности к регистру, к примеру, теги «Enemy» и «enemy» абсолютно равнозначны, это один и тот же тег.
- Return Value (bool, возвращаемый параметр) — возвращает значение True, если тег найден. В противном случае — False.
Теги — это простой и удобный способ в Анрил Энджин идентифицировать и группировать Actor по категориям, не полагаясь на имя или класс. Используются они для группировки объектов, фильтрации и управления логикой в игре.
Например, чтобы разделить объекты различных персонажей на 2 группы — союзники и враги, Акторам союзников можно присвоить тег «allies», а врагам — «enemy». А затем уже при реализации логики, к примеру, урона от применения оружия, если снаряд попал в персонажа, проверить у Actor это персонажа наличие тега «enemy», если такой тег есть, то нанести урон врагу.
Сами теги в Акторах добавляются во вкладке Details в меню Actor / Advanced / Tags. Тегов можно добавить любое количество, так как они хранятся в качестве массива.
Component Has Tag
Функция Component Has Tag служит для проверки наличия определённого тега у компонента. Функция принимает в качестве параметра имя тега и возвращает булево значение True, если указанный тег присвоен проверяемому компоненту, а также значение False в противном случае. Это позволяет выполнять определённую логику в зависимости от наличия или отсутствия у компонента определенного тега.
Параметры:
- Target (Actor component, по умолчанию Self) — компонент, который нужно проверить на наличие тега.
- Tag (name, по умолчанию None) — имя тега. Внимание! У имени тега нет чувствительности к регистру, к примеру, теги «Head» и «head» абсолютно равнозначны, это один и тот же тег.
- Return Value (bool, возвращаемый параметр) — возвращает значение True, если тег найден. В противном случае — False.
В целом, функция Component Has Tag полностью схожа с ActorHasTag, только обычно применяется для идентификации разных компонентов в рамках одного Актора. Например, с помощью тегов «Head» и «Body» можно различать компоненты головы или тела при нанесении урона. Если урон пришёлся на компонент головы с тегом «Head», то урон равен 100%, если же урон пришёлся на компонент тела с тегом «Body», то — 50%.
Сами теги в компонентах добавляются во вкладке Details в меню Tags / Component Tags. Тегов можно добавить любое количество, так как они хранятся в качестве массива.
Практические уроки в Unreal Engine
В качестве практики по реализации функций Actor Has Tag и Component Has Tag Вы можете посмотреть следующие уроки, где я применял рассматриваемые функции:
- При смене игроком первого персонажа на второго в его интерфейсе (HUD) должен появиться виджет с надписью «Второй игрок» (применяем функцию Actor Has Tag). Перейти к практике >>
- Точечный урон для персонажа с раздельным учётом повреждения головы, тела и защитного щита (применяем функцию Component Has Tag). Перейти к практике >>
Совет. Вскоре выйдет моя бесплатная книга по Blueprints для Unreal Engine в PDF формате. Как она выйдет, рекомендую её скачать, чтобы Вы детально изучили блюпринты Анрил Энджин.