Функция Get Component Tick Interval в Unreal Engine

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

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

Get Component Tick Interval

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

Blueprint-функция Get Component Tick Interval в Unreal Engine — вспомогательный метод (Getterгеттер) класса Actor Component, который возвращает интервал между тиками компонента. Это значение указывает, как часто будут вызываться тики, если компонент зарегистрирован и его тик включён.

Функция используется для получения текущего значения интервала между тиками компонента (Tick Interval). Это позволяет узнать:

  • вызывается ли тик каждый кадр (если возвращаемое значение меньше или равно нулю);
  • вызывается ли тик с заданным интервалом (если возвращаемое значение больше нуля).

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

Перевод официальной справки: функция Get Component Tick Interval — возвращает интервал между тиками основной тик-функции компонента.

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

  • Target (Actor Component) — ссылка на компонент, для которого необходимо возвратить интервал между тиками.
  • Return Value (float) — возвращаемое значение: текущий интервал тиков компонента в секундах. Если значение равно 0, тик происходит каждый кадр, если больше 0, тик происходит с этим интервалом.

Как Get Component Tick Interval работает внутри

Кратко рассмотрим, как функция Get Component Tick Interval работает внутри движка Unreal Engine:

  1. Функция очень простая. Она возвращает значение поля TickInterval, которое хранится в структуре PrimaryComponentTick текущего компонента.

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

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

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

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

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

C++


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
// Где-то в вашем Акторе или другом компоненте

// Проверяем, существует ли компонент и включен ли у него тик.
if (MyComponent && MyComponent->IsComponentTickEnabled())
{
    // Получаем текущий интервал тика компонента в секундах.
    float CurrentInterval = MyComponent->GetComponentTickInterval();

    // Проверяем, тикает ли компонент с фиксированным интервалом (больше 0).
    if (CurrentInterval > 0.0f)
    {
        // Если интервал больше 0, значит, компонент тикает с фиксированной периодичностью.
        UE_LOG(LogTemp, Warning, TEXT("Компонент тикает с интервалом %.2f сек"), CurrentInterval); // Выводим интервал тика в лог.
    }
    else
    {
        // Если интервал равен 0, компонент тикает каждый кадр (Frame Tick).
        UE_LOG(LogTemp, Warning, TEXT("Компонент тикает каждый кадр")); // Выводим сообщение в лог.
    }
}
else
{
    // Если компонент не существует (MyComponent == nullptr) ИЛИ тик компонента отключен.
    UE_LOG(LogTemp, Warning, TEXT("Тик компонента отключен")); // Выводим сообщение в лог.
}

Blueprints

Пример работы функции GetComponentTickInterval в Blueprint
Пример работы функции GetComponentTickInterval в Blueprint
  1. Событие Key F (нажатие клавиши):
    — это событие отслеживает нажатие клавиш на клавиатуре;
    — в данном случае событие срабатывает при нажатии клавиши F.
  2. Функция GetComponentTickInterval:
    — получает текущий интервал между вызовами функции Tick для выбранного компонента;
    — параметр Target указывает на компонент, для которого нужно получить интервал тика (в данном случае указан компонент AC_MyActorComponent).
  3. Вывод значения интервала на экран (Print String):
    — полученное значение интервала тика (Return Value) передаётся в функцию Print String, которая, в свою очередь, выводит это значение на экран во время выполнения игры.
  4. Логика выполнения:
    — когда пользователь нажимает клавишу F, срабатывает событие Key F;
    — после этого вызывается функция GetComponentTickInterval, которая получает текущий интервал тика для компонента AC_MyActorComponent;
    — полученное значение интервала тика затем передаётся в функцию Print String, которая выводит его на экран.
  5. Зачем это делается? Этот фрагмент Blueprint позволяет отладить или проверить текущее значение интервала тика компонента во время выполнения игры. Это может быть полезно для:
    — отладки поведения компонента;
    — проверки, как изменяется интервал тика при различных условиях;
    — проверки корректности настройки интервала тика.

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


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

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

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