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
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
|
||
|
||
|
||
|
||
|
Méthodes
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) |
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
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 🔗
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 🔗
void set_replication_config(value: SceneReplicationConfig)
SceneReplicationConfig get_replication_config()
Ressource contenant les propriétés à synchroniser.
float replication_interval = 0.0 🔗
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 🔗
void set_visibility_update_mode(value: VisibilityUpdateMode)
VisibilityUpdateMode get_visibility_update_mode()
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.