Attention: Here be dragons

This is the latest (unstable) version of this documentation, which may document features not available in or compatible with released stable versions of Godot.

MultiplayerSynchronizer

Успадковує: Node < Object

Синхронізація властивостей від багатокористувацького органу до віддалених однолітків.

Опис

За замовчуванням, 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, також не будуть працювати в синхронізації.

Властивості

float

delta_interval

0.0

bool

public_visibility

true

SceneReplicationConfig

replication_config

float

replication_interval

0.0

NodePath

root_path

NodePath("..")

VisibilityUpdateMode

visibility_update_mode

0

Методи

void

add_visibility_filter(filter: Callable)

bool

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().


Описи властивостей

float delta_interval = 0.0 🔗

  • void set_delta_interval(value: float)

  • float get_delta_interval()

Інтервал часу між дельта-синхронізаціями. Використовується, коли для реплікації встановлено значення SceneReplicationConfig.REPLICATION_MODE_ON_CHANGE. Якщо встановлено значення 0.0 (за замовчуванням), дельта-синхронізації відбуваються в кожному кадрі мережевого процесу.


bool public_visibility = true 🔗

  • void set_visibility_public(value: bool)

  • bool is_visibility_public()

Якщо синхронізація має бути видимим для всіх однолітків за замовчуванням. Див. set_visibility_for() і add_visibility_filter() для способів налаштування параметрів дрібнозернистої видимості.


SceneReplicationConfig replication_config 🔗

  • void set_replication_config(value: SceneReplicationConfig)

  • SceneReplicationConfig get_replication_config()

Ресурс, що містить які властивості синхронізувати.


float replication_interval = 0.0 🔗

  • void set_replication_interval(value: float)

  • float get_replication_interval()

Інтервал часу між синхронізаціями. Використовується, коли для реплікації встановлено значення SceneReplicationConfig.REPLICATION_MODE_ALWAYS. Якщо встановлено значення 0.0 (за замовчуванням), синхронізація відбувається кожного кадру мережевого процесу.


NodePath root_path = NodePath("..") 🔗

  • void set_root_path(value: NodePath)

  • NodePath get_root_path()

Шлях до вузла, відносно якого залежать репліковані властивості.

Якщо root_path був створений MultiplayerSpawner, Вузол також буде створюватися та зникати на основі параметрів видимості цього синхронізатора.


VisibilityUpdateMode visibility_update_mode = 0 🔗

Визначає, коли оновлюються фільтри видимості.


Описи методів

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 (за замовчуванням), всі можливості однолітків оновлюються.