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
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à
|
||
|
||
|
||
|
||
|
Metodi
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) |
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à
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 🔗
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 🔗
void set_replication_config(value: SceneReplicationConfig)
SceneReplicationConfig get_replication_config()
Risorsa contenente le proprietà da sincronizzare.
float replication_interval = 0.0 🔗
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 🔗
void set_visibility_update_mode(value: VisibilityUpdateMode)
VisibilityUpdateMode get_visibility_update_mode()
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.