MultiplayerSynchronizer
Синхронізація властивостей від багатокористувацького органу до віддалених однолітків.
Опис
За замовчуванням, MultiplayerSynchronizer синхронізація налаштованих властивостей для всіх однолітків.
Увімкнення може оброблятися безпосередньо з set_visibility_for() або як-от з add_visibility_filter() та update_visibility().
MultiplayerSpawners буде обробляти вершини member до видимості синхронізаторів до тих пір, як вузол в root_path був спалений одним.
Внутрішня, MultiplayerSynchronizer використовує MultiplayerAPI.object_configuration_add(), щоб повідомити синхронізацію початок проходження Node в корінь_path як object і себе як ``конфігурація ``, і використовує MultiplayerAPI.ob_configuration_remove(), щоб повідомити синхронізацію кінець аналогічним чином.
Примітка: Синхронізація не підтримується для типів Object, таких як Resource. Властивості, які є унікальними для кожного однолітника, як ідентифікатор екземплярів Object (див. Об'єкт.get_instance_id()) або RID, також не будуть працювати в синхронізації.
Властивості
|
||
|
||
|
||
|
||
|
Методи
void |
add_visibility_filter(filter: Callable) |
get_visibility_for(peer: int) const |
|
void |
remove_visibility_filter(filter: Callable) |
void |
set_visibility_for(peer: int, visible: bool) |
void |
update_visibility(for_peer: int = 0) |
Сигнали
delta_synchronized() 🔗
Увімкнено, коли новий стан синхронізації дельти отримує цей синхронізатор після оновлення властивостей.
synchronized() 🔗
Увімкнено, коли новий стан синхронізації отримується цим синхронізатором після оновлення властивостей.
visibility_changed(for_peer: int) 🔗
Увімкнено при видимості for_peer. Див. update_visibility().
Переліки
enum VisibilityUpdateMode: 🔗
VisibilityUpdateMode VISIBILITY_PROCESS_IDLE = 0
Фільтри життєздатності оновлюються під час обробки кадрів (див. [constant Node. ІНТЕРНАЛ_ПРОЦЕС".
VisibilityUpdateMode VISIBILITY_PROCESS_PHYSICS = 1
Фільтри життєздатності оновлюються під час фізики (див. [constant Node. ІНТЕРНАЛ_ФІЗИКА_ПРОЦЕС".
VisibilityUpdateMode VISIBILITY_PROCESS_NONE = 2
Фільтри, які не оновлюються автоматично, і повинні бути оновлені вручну, за допомогою виклику update_visibility().
Описи властивостей
Інтервал часу між дельта-синхронізаціями. Використовується, коли для реплікації встановлено значення SceneReplicationConfig.REPLICATION_MODE_ON_CHANGE. Якщо встановлено значення 0.0 (за замовчуванням), дельта-синхронізації відбуваються в кожному кадрі мережевого процесу.
bool public_visibility = true 🔗
Якщо синхронізація має бути видимим для всіх однолітків за замовчуванням. Див. set_visibility_for() і add_visibility_filter() для способів налаштування параметрів дрібнозернистої видимості.
SceneReplicationConfig replication_config 🔗
void set_replication_config(value: SceneReplicationConfig)
SceneReplicationConfig get_replication_config()
Ресурс, що містить які властивості синхронізувати.
float replication_interval = 0.0 🔗
Інтервал часу між синхронізаціями. Використовується, коли для реплікації встановлено значення SceneReplicationConfig.REPLICATION_MODE_ALWAYS. Якщо встановлено значення 0.0 (за замовчуванням), синхронізація відбувається кожного кадру мережевого процесу.
NodePath root_path = NodePath("..") 🔗
Шлях до вузла, відносно якого залежать репліковані властивості.
Якщо root_path був створений MultiplayerSpawner, Вузол також буде створюватися та зникати на основі параметрів видимості цього синхронізатора.
VisibilityUpdateMode visibility_update_mode = 0 🔗
void set_visibility_update_mode(value: VisibilityUpdateMode)
VisibilityUpdateMode get_visibility_update_mode()
Визначає, коли оновлюються фільтри видимості.
Описи методів
void add_visibility_filter(filter: Callable) 🔗
Додавання фільтра видимості однолітків для цього синхронізатора.
filter повинен прийняти однолітковий ідентифікатор int і повернути bool.
bool get_visibility_for(peer: int) const 🔗
Отримує поточну видимість для вузла peer.
void remove_visibility_filter(filter: Callable) 🔗
Видаліть фільтр видимості однолітків з цього синхронізатора.
void set_visibility_for(peer: int, visible: bool) 🔗
Налаштовує видимість param-дір на visible. 0, значення public_visibility буде оновлено.
void update_visibility(for_peer: int = 0) 🔗
Оновлення видимості for_peer відповідно до видимих фільтрів. Якщо for_peer є 0 (за замовчуванням), всі можливості однолітків оновлюються.