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

Hérite de : Node < Object

Synchronise des propriétés de l'autorité multijoueur vers les pairs distants.

Description

Par défaut, MultiplayerSynchronizer synchronise les propriétés configurées vers tous les pairs.

La visibilité peut être gérée directement avec set_visibility_for() ou au besoin avec add_visibility_filter() et update_visibility().

Les MultiplayerSpawners géreront les nœuds en fonction de la visibilité des synchroniseurs tant que le nœud à root_path ait été spawné par un MultiplayerSpawner..

En interne, MultiplayerSynchronizer utilise MultiplayerAPI.object_configuration_add() pour notifier le démarrage de la synchronisation en passant Node à root_path dans object et lui-même dans configuration, et utilise MultiplayerAPI.object_configuration_remove() pour notifier la fin de la synchronisation de la même manière.

Note : La synchronisation n'est pas supportée pour les propriétés de type Object, comme Resource. Les propriétés qui sont uniques à chaque pair, comme les identifiants d'instance d'Objects (voir Object.get_instance_id()) ou les RIDs, ne fonctionneront aussi pas dans la synchronisation.

Propriétés

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

Méthodes

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)


Signaux

delta_synchronized() 🔗

Émis quand un nouvel état de synchronisation delta est reçu par ce synchroniseur après que les propriétés aient été mises à jour.


synchronized() 🔗

Émis quand un nouvel état de synchronisation est reçu par ce synchroniseur après que les propriétés aient été mises à jour.


visibility_changed(for_peer: int) 🔗

Émis quand la visibilité du pair for_peer est mise à jour. Voir update_visibility().


Énumérations

enum VisibilityUpdateMode: 🔗

VisibilityUpdateMode VISIBILITY_PROCESS_IDLE = 0

Les filtres de visibilité sont mis à jour pendant les trames de traitement (voir Node.NOTIFICATION_INTERNAL_PROCESS).

VisibilityUpdateMode VISIBILITY_PROCESS_PHYSICS = 1

Les filtres de visibilité sont mis à jour pendant les trames de physique (voir Node.NOTIFICATION_INTERNAL_PHYSICS_PROCESS).

VisibilityUpdateMode VISIBILITY_PROCESS_NONE = 2

Les filtres de visibilité ne sont pas mis à jour automatiquement et doivent être mis à jour manuellement en appelant update_visibility().


Descriptions des propriétés

float delta_interval = 0.0 🔗

  • void set_delta_interval(value: float)

  • float get_delta_interval()

Intervalle de temps entre les synchronisations delta. Utilisé lorsque la réplication est définie à SceneReplicationConfig.REPLICATION_MODE_ON_CHANGE. Si défini à 0.0 (la valeur par défaut), les synchronisations delta se produisent à chaque trame de traitement réseau.


bool public_visibility = true 🔗

  • void set_visibility_public(value: bool)

  • bool is_visibility_public()

Indique si la synchronisation devrait être visible par défaut pour tous les pairs. Voir set_visibility_for() et add_visibility_filter() pour des moyens de configurer des options de visibilité plus détaillées.


SceneReplicationConfig replication_config 🔗

Ressource contenant les propriétés à synchroniser.


float replication_interval = 0.0 🔗

  • void set_replication_interval(value: float)

  • float get_replication_interval()

Intervalle de temps entre les synchronisations. Utilisé lorsque la réplication est définie à SceneReplicationConfig.REPLICATION_MODE_ALWAYS. Si défini à 0.0 (la valeur par défaut), les synchronisations se produisent à chaque trame de traitement réseau.


NodePath root_path = NodePath("..") 🔗

Chemin du nœud auquel les propriétés répliquées sont relatives.

Si root_path a été spawné par un MultiplayerSpawner, le nœud sera également spawné et despawné en fonction des options de visibilité de ce synchroniseur.


VisibilityUpdateMode visibility_update_mode = 0 🔗

Spécifie quand les filtres de visibilité sont mis à jour.


Descriptions des méthodes

void add_visibility_filter(filter: Callable) 🔗

Ajoute un filtre de visibilité des pairs pour ce synchroniseur.

filter devrait prendre un identifiant int de pair et renvoyer un bool.


bool get_visibility_for(peer: int) const 🔗

Demande la visibilité actuelle du pair peer.


void remove_visibility_filter(filter: Callable) 🔗

Retire un filtre de visibilité des pairs de ce synchroniseur.


void set_visibility_for(peer: int, visible: bool) 🔗

Définit la visibilité du pair peer à visible. Si peer vaut 0, la valeur de public_visibility sera mise à jour à la place.


void update_visibility(for_peer: int = 0) 🔗

Met à jour la visibilité de for_peer selon les filtres de visibilité. Si for_peer vaut 0 (par défaut), toutes les visibilités des pairs sont mises à jour.