Функция Toggle Active в Unreal Engine

Друзья, приветствую, с Вами Будуев Антон. В этой статье мы обсудим Blueprint-функцию (метод) Toggle Active в Unreal Engine (UE4, UE5), переключающий активное состояние компонента.

Вскоре выйдет моя бесплатная книга по Blueprints для Unreal Engine в PDF формате. Как она выйдет, рекомендую её скачать, чтобы Вы детально изучили блюпринты Анрил Энджин.

Toggle Active

Blueprint-функция Toggle Active в Unreal Engine (UE5, UE4)
Blueprint-функция Toggle Active в Unreal Engine (UE5, UE4)

Blueprint-функция Toggle Active в Unreal Engine — это метод класса Actor Component, который переключает текущее состояние активности компонента на противоположное: значение True (активный) меняет на False (неактивный) и обратно. Это удобный способ смены состояния активности без необходимости явно проверять текущее значение Is Active. Функция вызывается как из C++, так и из Blueprints.

Перевод официальной справки: функция Toggle Active — переключает активное состояние компонента.

Данный метод позволяет:

  • переключать состояние компонента (если он был активен — деактивировать, если не был — активировать).
  • упрощать логику переключения состояния активности (включение/выключение одной функцией).

Параметры функции

  • Target (Actor Component) — ссылка на компонент, для которого необходимо переключить состояние активности на противоположное.

Других специфичных параметров у функции нет, так как она просто меняет текущее состояние на противоположное.

Как Toggle Active работает внутри

Рассмотрим, как функция Toggle Active работает внутри движка Unreal Engine.


1
2
3
4
5
6
7
8
9
10
11
12
void UActorComponent::ToggleActive()
{
    // Метод ToggleActive() — это вспомогательная функция, которая переключает текущее состояние активности компонента.
    // Если компонент был активен (IsActive() == true), он будет деактивирован.
    // Если компонент был неактивен (IsActive() == false), он будет активирован.

    // Вызываем метод SetActive(), передавая противоположное значение текущего состояния bIsActive:
    // - !IsActive() — инвертируем текущее состояние активности.
    // Это позволяет легко переключать активность компонента без явной проверки текущего состояния.

    SetActive(!IsActive());
}

Логика работы функции:

  1. Метод IsActive().

Для начала получаем текущее состояние компонента методом Is Active, который возвращает значение True, если компонент активен, и False — неактивен. Далее оператором логического отрицания (!) это значение инвертируем (переворачиваем на противоположное). Как следствие, если IsActive возвращает True, то инвертированное значение будет равняться False, и наоборот.

  1. Вызов SetActive().

В логике ToggleActive остаётся только одно действие — установить новое состояние активности компонента на основе инвертированного значения из пункта 1. Производится это действие методом Set Active, который отвечает за установку нового состояния активности компонента на основе переданного параметра.

SetActive(!IsActive())

Таким образом, Toggle Active использует SetActive() для изменения состояния компонента, основываясь на инвертированном (перевёрнутом) текущем значении активности, возвращаемом методом IsActive().

Смежные функции

  • Activate — активирует компонент (если он не был активным ранее).
  • Deactivate — деактивирует компонент, останавливая его работу и отключая все связанные действия.
  • Set Active — устанавливает новое состояние активности компонента.
  • Set Auto Activate — определяет, будет ли компонент автоматически активирован при начале игры.
  • Is Active — возвращает текущее состояние активности компонента.

Пример использования функции Toggle Active

C++

Переключаем состояние активности компонента движения на обратное текущему состоянию по нажатию на клавишу F клавиатуры.


1
2
3
4
5
6
7
void AMyCharacter::OnFKeyPressed()
{
    if (MovementComponent) // Убеждаемся, что компонент существует
    {
        MovementComponent->ToggleActive(); // Меняем активность компонента      
    }
}

Blueprints

  1. Загрузите шаблон игры Unreal Engine (UE5) от третьего лица. Откройте блюпринт персонажа BP_ThirdPersonCharacter по пути /All/Game/ThirdPerson/Blueprints.
  2. В Event Graph разместите событие Key F (событие, срабатывающее при нажатии клавиши F на клавиатуре).
  3. Перетащите на поле Event Graph ссылку на компонент Character Movement и из этой ссылки получите функцию Toggle Active.
  4. Подключите функцию к событию Key F.

В результате при запуске игры персонаж сможет двигаться, но при нажатии на клавишу F компонент Character Movement отключится, и персонаж более не сможет продолжать движение. При последующем нажатии клавиши F компонент Character Movement вновь включится, и персонаж сможет продолжить своё движение. И так далее, при каждом нажатии клавиши F активность компонента движения будет меняться на обратное текущему.

Пример работы функции ToggleActive в Blueprint
Пример работы функции ToggleActive в Blueprint

Совет. Вскоре выйдет моя бесплатная книга по Blueprints для Unreal Engine в PDF формате. Как она выйдет, рекомендую её скачать, чтобы Вы детально изучили блюпринты Анрил Энджин.


наш Телеграм канал

Оцените статью
( 1 оценка, среднее 5 из 5 )
Поделитесь этой статьей со своими знакомыми в социальных сетях, возможно, эта статья кому-то будет полезна
Unreal Engine - это просто
Добавить комментарий

Нажимая на кнопку "Отправить комментарий", я даю согласие на обработку персональных данных и принимаю политику конфиденциальности.