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

Eredita: Node < Object

Sincronizza le proprietà dall'autorità multigiocatore ai peer remoti.

Descrizione

Per impostazione predefinita, MultiplayerSynchronizer sincronizza le proprietà configurate con tutti i peer.

La visibilità può essere gestita direttamente con set_visibility_for() o, se necessario, con add_visibility_filter() e update_visibility().

MultiplayerSpawner gestirà i nodi in base alla visibilità dei sincronizzatori, purché il nodo in root_path sia stato generato da uno.

Internamente, MultiplayerSynchronizer utilizza MultiplayerAPI.object_configuration_add() per notificare l'inizio della sincronizzazione passando il Node in root_path come object e se stesso come configuration, e utilizza MultiplayerAPI.object_configuration_remove() per notificare la fine della sincronizzazione in modo simile.

Nota: La sincronizzazione non è supportata per le proprietà di tipo Object, come Resource. Anche le proprietà univoche per ogni peer, come gli ID istanza di Object (vedi Object.get_instance_id()) o RID, non funzioneranno nella sincronizzazione.

Proprietà

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

Metodi

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)


Segnali

delta_synchronized() 🔗

Emesso quando questo sincronizzatore riceve un nuovo stato di sincronizzazione delta dopo l'aggiornamento delle proprietà.


synchronized() 🔗

Emesso quando questo sincronizzatore riceve un nuovo stato di sincronizzazione dopo l'aggiornamento delle proprietà.


visibility_changed(for_peer: int) 🔗

Emesso quando la visibilità del peer for_peer viene aggiornata. Vedi update_visibility().


Enumerazioni

enum VisibilityUpdateMode: 🔗

VisibilityUpdateMode VISIBILITY_PROCESS_IDLE = 0

I filtri di visibilità sono aggiornati durante i frame di processo (vedi Node.NOTIFICATION_INTERNAL_PROCESS).

VisibilityUpdateMode VISIBILITY_PROCESS_PHYSICS = 1

I filtri di visibilità sono aggiornati durante i frame di fisica (vedi Node.NOTIFICATION_INTERNAL_PHYSICS_PROCESS).

VisibilityUpdateMode VISIBILITY_PROCESS_NONE = 2

I filtri di visibilità non sono aggiornati automaticamente, ma devono essere aggiornati manualmente chiamando update_visibility().


Descrizioni delle proprietà

float delta_interval = 0.0 🔗

  • void set_delta_interval(value: float)

  • float get_delta_interval()

Intervallo di tempo tra sincronizzazioni delta. Usato quando la replicazione è impostata su SceneReplicationConfig.REPLICATION_MODE_ON_CHANGE. Se impostato su 0.0 (il valore predefinito), le sincronizzazioni delta avvengono a ogni frame di processo di rete.


bool public_visibility = true 🔗

  • void set_visibility_public(value: bool)

  • bool is_visibility_public()

Se la sincronizzazione deve essere visibile a tutti i peer come predefinito. Vedi set_visibility_for() e add_visibility_filter() per configurare le opzioni di visibilità più precisamente.


SceneReplicationConfig replication_config 🔗

Risorsa contenente le proprietà da sincronizzare.


float replication_interval = 0.0 🔗

  • void set_replication_interval(value: float)

  • float get_replication_interval()

Intervallo di tempo tra le sincronizzazioni. Usato quando la replicazione è impostata su SceneReplicationConfig.REPLICATION_MODE_ALWAYS. Se impostato su 0.0 (il valore predefinito), le sincronizzazioni avvengono a ogni frame di processo di rete.


NodePath root_path = NodePath("..") 🔗

Percorso di nodo a cui sono relative le proprietà replicate.

Se root_path è stato generato da un MultiplayerSpawner, il nodo sarà generato e eliminato in base alle opzioni di visibilità di questo sincronizzatore.


VisibilityUpdateMode visibility_update_mode = 0 🔗

Specifica quando i filtri di visibilità vengono aggiornati.


Descrizioni dei metodi

void add_visibility_filter(filter: Callable) 🔗

Aggiunge un filtro di visibilità peer per questo sincronizzatore.

filter dovrebbe accettare un ID peer int e restituire un bool.


bool get_visibility_for(peer: int) const 🔗

Richiede la visibilità attuale per il peer peer.


void remove_visibility_filter(filter: Callable) 🔗

Rimuove un filtro di visibilità peer da questo sincronizzatore.


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

Imposta la visibilità di peer su visible. Se peer è 0, verrà aggiornato il valore di public_visibility.


void update_visibility(for_peer: int = 0) 🔗

Aggiorna la visibilità di for_peer in base ai filtri di visibilità. Se for_peer è 0 (il valore predefinito), vengono aggiornate le visibilità di tutti i peer.