Друзья, приветствую, с Вами Будуев Антон. В этой статье мы в качестве справочной информации обсудим Blueprint-функцию (метод) Set Is Replicated класса Actor Component в Unreal Engine (UE4, UE5), включающую/отключающую репликацию компонента.
Вскоре выйдет моя бесплатная книга по Blueprints для Unreal Engine в PDF формате. Как она выйдет, рекомендую её скачать, чтобы Вы детально изучили блюпринты Анрил Энджин.
Set Is Replicated

Blueprint-функция Set Is Replicated в Unreal Engine — метод класса Actor Component, который устанавливает, должен ли данный компонент участвовать в репликации по сети.
Функция доступна как в C++, так и в Blueprints и используется для включения или отключения сетевой репликации компонента. Если репликация включена (True), состояние этого компонента будет передаваться на клиентов в многопользовательской игре (если его Актор-владелец также реплицируется). Эта функция вызывается при создании компонента или изменении его состояния репликации в процессе игры.
Перевод официальной справки: функция Set Is Replicated — включает/отключает репликацию.
Параметры функции
- Target (Actor Component) — указатель на компонент, для которого необходимо установить правила репликации.
- Should Replicate (bool) — флаг, указывающий, должна ли производиться репликация компонента: True — компонент будет реплицироваться, False — репликация отключается.
Тонкости применения функции
Репликация компонента возможна, только если Актор-владелец также реплицируется.
Как Set Is Replicated работает внутри
Кратко рассмотрим, как функция Set Is Replicated работает внутри движка Unreal Engine.
- Проверяется, совпадает ли текущее значение внутреннего свойства bReplicates, хранящее информацию, включена ли репликация компонента или нет, с тем, которое нужно установить через рассматриваемую функцию SetIsReplicated. Если значения совпадают, то функция ничего не делает.
- Внутренним методом GetComponentClassCanReplicate() проверяется, может ли данный класс компонента вообще участвовать в репликации.
- Если все условия пройдены, устанавливается новое значение внутреннего свойства bReplicates.
- В системе производится отметка, что свойство было изменено (MARK_PROPERTY_DIRTY).
- Через функцию GetOwner() получается владеющий текущим компонентом Актор, и если такой Актор существует, вызывается внутренний метод UpdateReplicatedComponent() для обновления информации о сетевой репликации компонента.
- В случае ошибок выводится лог с предупреждением о невозможности репликации.
Ключевые понятия, связанные с функцией
- Репликация (Replication) — механизм передачи данных между сервером и клиентами в сетевой игре.
- bReplicates — внутреннее свойство, хранящее информацию о том, реплицируется ли объект или нет.
- GetOwner() — функция, возвращающая ссылку на Актора-владельца, которому принадлежит компонент.
- UpdateReplicatedComponent() — внутренний метод класса Actor, вызывающийся при изменении состояния репликации компонента, и предназначен для обновления информации о сетевой репликации компонента, принадлежащего Актору (добавление или удаление компонента из списка реплицируемых компонентов, обновление условий репликации, инициализация репликации компонента, обновление информации о репликации компонента).
- GetComponentClassCanReplicate() — внутренний метод, проверяющий, разрешено ли вообще данному типу компонента участвовать в репликации.
Совет. Вскоре выйдет моя бесплатная книга по Blueprints для Unreal Engine в PDF формате. Как она выйдет, рекомендую её скачать, чтобы Вы детально изучили блюпринты Анрил Энджин.