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...
SceneMultiplayer
Eredita: MultiplayerAPI < RefCounted < Object
Implementazione API multigiocatore di alto livello.
Descrizione
Questa classe è l'implementazione predefinita di MultiplayerAPI, utilizzata per fornire funzionalità multigiocatore in Godot Engine.
Questa implementazione supporta le RPC tramite Node.rpc() e Node.rpc_id() e richiede che a MultiplayerAPI.rpc() venga passato un Node (fallirà per gli altri tipi di oggetti).
Questa implementazione fornisce inoltre la replicazione del SceneTree tramite i nodi MultiplayerSpawner e MultiplayerSynchronizer e la risorsa SceneReplicationConfig.
Nota: Il protocollo della MultiplayerAPI è un dettaglio di implementazione e non è pensato per essere utilizzato da server non Godot. Potrebbe cambiare senza preavviso.
Nota: Quando si esporta su Android, assicurarsi di abilitare l'autorizzazione INTERNET nella preimpostazione d'esportazione Android prima di esportare il progetto o di utilizzare la distribuzione con un clic. Altrimenti, qualsiasi tipo di comunicazione di rete sarà bloccata da Android.
Proprietà
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
Metodi
void |
clear() |
complete_auth(id: int) |
|
void |
disconnect_peer(id: int) |
send_auth(id: int, data: PackedByteArray) |
|
send_bytes(bytes: PackedByteArray, id: int = 0, mode: TransferMode = 2, channel: int = 0) |
Segnali
peer_authenticating(id: int) 🔗
Emesso quando il MultiplayerAPI.multiplayer_peer di questa MultiplayerAPI si connette a un nuovo peer e viene impostato un auth_callback valido. In questo caso, MultiplayerAPI.peer_connected non verrà emesso finché non verrà chiamato complete_auth() con l'id peer specificato. In questo stato, il peer non verrà incluso nella lista restituita da MultiplayerAPI.get_peers() (ma in quella restituita da get_authenticating_peers()) e verranno inviati o ricevuti solo i dati di autenticazione. Vedi send_auth() per inviare i dati di autenticazione.
peer_authentication_failed(id: int) 🔗
Emesso quando MultiplayerAPI.multiplayer_peer di questa MultiplayerAPI si disconnette da un peer per il quale l'autenticazione non è stata ancora completata. Vedi peer_authenticating.
peer_packet(id: int, packet: PackedByteArray) 🔗
Emesso quando MultiplayerAPI.multiplayer_peer di questa MultiplayerAPI riceve un pacchetto (packet) con dati personalizzati (vedi send_bytes()). ID è l'ID peer del peer che ha inviato il pacchetto.
Descrizioni delle proprietà
bool allow_object_decoding = false 🔗
Se true, la MultiplayerAPI consentirà la codifica e la decodifica di oggetti durante le RPC.
Attenzione: Un oggetto deserializzato può contenere codice che verrà eseguito. Non usare questa opzione se l'oggetto serializzato arriva da fonti sconosciute per evitare eventuali rischi di sicurezza come l'esecuzione di codice remoto.
Callable auth_callback = Callable() 🔗
Il callback da eseguire quando si ricevono dati di autenticazione inviati tramite send_auth(). Se il Callable è vuoto (predefinito), i peer verranno accettati automaticamente non appena si connettono.
Se impostato su un valore maggiore di 0.0, la durata massima in secondi in cui i peer possono rimanere nello stato di autenticazione, dopodiché l'autenticazione fallirà automaticamente. Vedi i segnali peer_authenticating e peer_authentication_failed.
int max_delta_packet_size = 65535 🔗
Dimensione massima di ogni pacchetto delta. Valori più alti aumentano la possibilità di ricevere aggiornamenti completi in un singolo frame, ma anche la possibilità di causare congestioni di rete (latenza più elevata, disconnessioni). Vedi MultiplayerSynchronizer.
int max_sync_packet_size = 1350 🔗
Dimensione massima di ogni pacchetto di sincronizzazione. Valori più alti aumentano la possibilità di ricevere aggiornamenti completi in un singolo frame, ma anche la possibilità di perdere i pacchetti. Vedi MultiplayerSynchronizer.
bool refuse_new_connections = false 🔗
Se true, il MultiplayerAPI.multiplayer_peer della MultiplayerAPI rifiuta le nuove connessioni in arrivo.
NodePath root_path = NodePath("") 🔗
Il percorso radice da usare per le RPC e replica. Invece di un percorso assoluto, verrà usato un percorso relativo per trovare il nodo su cui deve essere eseguita la RPC.
Ciò consente effettivamente di avere diversi rami dell'albero di scene da gestire tramite diverse MultiplayerAPI, consentendo ad esempio di eseguire sia il client sia il server nella stessa scena.
Abilita o disabilita la funzionalità del server che notifica ai client la connessione/disconnessione di altri peer e inoltra messaggi tra di loro. Quando questa opzione è false, i client non saranno automaticamente informati di altri peer e non saranno in grado di inviare loro pacchetti tramite il server.
Nota: Modificare questa opzione mentre altri peer sono connessi potrebbe portare a comportamenti imprevisti.
Nota: Il supporto per questa funzionalità potrebbe dipendere dalla configurazione del MultiplayerPeer attuale. Vedi MultiplayerPeer.is_server_relay_supported().
Descrizioni dei metodi
void clear() 🔗
Cancella lo stato attuale della rete SceneMultiplayer (non dovresti chiamare questa funzione se non sai cosa stai facendo).
Error complete_auth(id: int) 🔗
Contrassegna il passaggio di autenticazione come completato per il peer remoto identificato da id. Il segnale MultiplayerAPI.peer_connected verrà emesso per questo peer una volta che anche il lato remoto avrà completato l'autenticazione. Non sono previsti ulteriori messaggi di autenticazione da questo peer.
Se un peer si disconnette prima di completare l'autenticazione, a causa di un problema di rete, della scadenza di auth_timeout o della chiamata manuale di disconnect_peer(), verrà emesso il segnale peer_authentication_failed al posto di MultiplayerAPI.peer_disconnected.
void disconnect_peer(id: int) 🔗
Disconnette il peer identificato da id, rimuovendolo dalla lista dei peer connessi e chiudendo la connessione sottostante con esso.
PackedInt32Array get_authenticating_peers() 🔗
Restituisce gli ID dei peer che stanno attualmente tentando di autenticarsi con questa MultiplayerAPI.
Error send_auth(id: int, data: PackedByteArray) 🔗
Invia i dati specificati (data) al peer remoto identificato da id come parte di un messaggio di autenticazione. Può essere utilizzato per autenticare i peer e controllare quando MultiplayerAPI.peer_connected viene emesso (e il peer remoto viene accettato come uno dei peer connessi).
Error send_bytes(bytes: PackedByteArray, id: int = 0, mode: TransferMode = 2, channel: int = 0) 🔗
Invia i dati grezzi bytes a un peer specifico identificato da id (vedi MultiplayerPeer.set_target_peer()). L'ID predefinito è 0, ovvero viene trasmesso a tutti i peer.