Функция Is Component Tick Enabled в Unreal Engine

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

Скачать книгу Blueprint для Unreal Engine

Is Component Tick Enabled

Blueprint-функция Is Component Tick Enabled в Unreal Engine (UE4, UE5)
Blueprint-функция Is Component Tick Enabled в Unreal Engine (UE4, UE5)

Blueprint-функция Is Component Tick Enabled в Unreal Engine — метод класса Actor Component, который возвращает информацию о том, включён ли тик у компонента на данный момент. А именно, возвращает значение True, если тик компонента включён. И False — если выключен.

Функция является pure («чистой», то есть не изменяет никаких данных, просто возвращает значение) и вызывается как из C++, так и из Blueprints.

Перевод официальной справки: функция Is Component Tick Enabled — возвращает, включена ли для этого компонента опция Tick или нет.

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

  • Target (Actor Component) — ссылка на компонент, для которого необходимо получить информацию о том, включён ли у него тик.
  • Return Value (bool) — возвращаемое значение: True (тик включён), False (тик отключён).

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

Как Is Component Tick Enabled работает внутри

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


1
2
3
4
5
6
bool UActorComponent::IsComponentTickEnabled() const
{
    // Возвращаем текущее состояние работы тика из структуры PrimaryComponentTick.
    // Это значение указывает, активен ли тик для этого компонента в данный момент.
    return PrimaryComponentTick.IsTickFunctionEnabled();
}

Как видно из кода, это очень простой метод, который возвращает состояние флага активности тика компонента из структуры PrimaryComponentTick при помощи специального внутреннего метода этой структуры IsTickFunctionEnabled().

Наш канал «Unreal Engine — это просто» в Telegram, MAX и VK: осторожно, подписка на канал вызывает желание открыть Unreal Editor ;)

Также функция помечена как const, так как не изменяет состояние объекта, а только возвращает значение флага (свойства).

* PrimaryComponentTick — это специальная структура в Unreal Engine, которая используется для управления тиками компонента и содержит внутри себя следующую информацию:

  • может ли компонент вообще тикать;
  • когда он будет тикать (в какой группе тиков);
  • как часто (интервал между тиками);
  • есть ли зависимости по тику (должен ли он тикать после другого Актора или компонента).

Собственно, рассматриваемая в этой статье Blueprint-функция Is Component Tick Enabled и возвращает одно из свойств структуры PrimaryComponentTick, а именно, информацию, включён ли тик у компонента или нет.

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

  • Event Tick — вызывается каждый кадр, если компонент имеет включённый тик. Используется для логики обновления.
  • Event Async Physics Tick — вызывается при асинхронном физическом тике (если включено).
  • Set Component Tick Enabled — включает или выключает тик компонента.
  • Set Component Tick Interval — задаёт интервал между тиками компонента (в секундах).
  • Set Component Tick Interval And Cooldown — задаёт интервал между тиками компонента (в секундах), а также устанавливает Cooldown для корректной синхронизации.
  • Get Component Tick Interval — возвращает текущий интервал между тиками компонента.
  • Set Tick Group — устанавливает группу тиков, определяя порядок выполнения.
  • Set Tickable When Paused — определяет, должен ли компонент тикать даже когда игра на паузе.

Пример использования функции Is Component Tick Enabled

C++

Проверка тика пользовательского компонента


1
2
3
4
5
6
7
8
9
10
11
if (MyComponent) // Проверяем существует ли компонент
{
    if (MyComponent->IsComponentTickEnabled()) // Проверяем тик компонента
    {
        UE_LOG(LogTemp, Warning, TEXT("Тик компонента включён"));
    }
    else
    {
        UE_LOG(LogTemp, Warning, TEXT("Тик компонента выключен"));
    }
}

Blueprints

Рассмотрим небольшой пример включения/отключения тиков компонента передвижения персонажа.

При нажатии на клавишу F (событие Key F) при помощи рассматриваемой функции IsComponentTickEnabled проверяем тики компонента движения персонажа Character Movement:

  • если тики включены (функция возвращает True), то функцией Set Component Tick Enabled выключаем их, установив параметр Enabled в значение False;
  • если тики выключены (функция возвращает False), то функцией Set Component Tick Enabled включаем их, установив параметр Enabled в значение True.

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

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