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.
Checking the stable version of the documentation...
MultiplayerSynchronizer
Синхронизирует свойства многопользовательского центра с удаленными узлами.
Описание
По умолчанию MultiplayerSynchronizer синхронизирует настроенные свойства со всеми одноранговыми узлами.
Видимость может обрабатываться напрямую с помощью set_visibility_for() или по мере необходимости с помощью add_visibility_filter() и update_visibility().
MultiplayerSpawner-ы будут обрабатывать узлы в соответствии с видимостью синхронизаторов, пока узел в root_path был создан одним из них.
Внутренне MultiplayerSynchronizer использует MultiplayerAPI.object_configuration_add() для уведомления о начале синхронизации, передавая Node в root_path как object и себя как configuration, и использует MultiplayerAPI.object_configuration_remove() для уведомления о завершении синхронизации аналогичным образом.
Примечание: Синхронизация не поддерживается для свойств типа Object, таких как Resource. Свойства, которые являются уникальными для каждого однорангового узла, такие как идентификаторы экземпляров Object (см. 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
Фильтры видимости обновляются во время кадров процесса (см. Node.NOTIFICATION_INTERNAL_PROCESS).
VisibilityUpdateMode VISIBILITY_PROCESS_PHYSICS = 1
Фильтры видимости обновляются во время физических кадров (см. Node.NOTIFICATION_INTERNAL_PHYSICS_PROCESS).
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) 🔗
Устанавливает видимость peer на visible. Если peer равен 0, вместо этого будет обновлено значение public_visibility.
void update_visibility(for_peer: int = 0) 🔗
Обновляет видимость for_peer в соответствии с фильтрами видимости. Если for_peer равен 0 (по умолчанию), обновляются видимости всех пиров.