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.

MultiplayerAPI

Eredita: RefCounted < Object

Ereditato da: MultiplayerAPIExtension, SceneMultiplayer

Interfaccia API multigiocatore di alto livello.

Descrizione

Classe base per implementazioni dell'API multigiocatore di alto livello. Vedi anche MultiplayerPeer.

Come predefinito, SceneTree ha un riferimento a un'implementazione di questa classe e la usa per fornire capacità multigiocatore (ad esempio RPC) in tutta la scena.

È possibile sovrascrivere l'istanza MultiplayerAPI usata da rami specifici dell'albero chiamando il metodo SceneTree.set_multiplayer(), consentendo effettivamente di eseguire sia il client sia il server nella stessa scena.

È anche possibile estendere o sostituire l'implementazione predefinita tramite scripting o estensioni native. Vedi MultiplayerAPIExtension per i dettagli sulle estensioni, SceneMultiplayer per i dettagli sull'implementazione predefinita.

Proprietà

MultiplayerPeer

multiplayer_peer

Metodi

MultiplayerAPI

create_default_interface() static

StringName

get_default_interface() static

PackedInt32Array

get_peers()

int

get_remote_sender_id()

int

get_unique_id()

bool

has_multiplayer_peer()

bool

is_server()

Error

object_configuration_add(object: Object, configuration: Variant)

Error

object_configuration_remove(object: Object, configuration: Variant)

Error

poll()

Error

rpc(peer: int, object: Object, method: StringName, arguments: Array = [])

void

set_default_interface(interface_name: StringName) static


Segnali

connected_to_server() 🔗

Emesso quando il multiplayer_peer di questa MultiplayerAPI si è connesso correttamente a un server. Emesso solo sui client.


connection_failed() 🔗

Emesso quando il multiplayer_peer di questa MultiplayerAPI non riesce a stabilire una connessione a un server. Emesso solo sui client.


peer_connected(id: int) 🔗

Emesso quando il multiplayer_peer di questa MultiplayerAPI si connette a un nuovo peer. ID è l'ID peer del nuovo peer. I client vengono avvisati quando altri client si connettono allo stesso server. Quando si connette a un server, un client riceve questo segnale anche per il server (con ID pari a 1).


peer_disconnected(id: int) 🔗

Emesso quando il multiplayer_peer di questa MultiplayerAPI si disconnette da un peer. I client vengono avvisati quando altri client si disconnettono dallo stesso server.


server_disconnected() 🔗

Emesso quando il multiplayer_peer di questa MultiplayerAPI si disconnette dal server. Emesso solo sui client.


Enumerazioni

enum RPCMode: 🔗

RPCMode RPC_MODE_DISABLED = 0

Utilizzato con Node.rpc_config() per disabilitare un metodo o una proprietà per tutte le chiamate RPC, rendendolo non disponibile. Predefinito per tutti i metodi.

RPCMode RPC_MODE_ANY_PEER = 1

Utilizzato con Node.rpc_config() per impostare un metodo in modo che sia richiamabile da remoto da qualsiasi peer. Analogo all'annotazione @rpc("any_peer"). Le chiamate sono accettate da tutti i peer remoti, a prescindere dal fatto che siano o meno l'autorità del nodo.

RPCMode RPC_MODE_AUTHORITY = 2

Utilizzato con Node.rpc_config() per impostare un metodo in modo che sia richiamabile da remoto solo dall'autorità multigiocatore attuale (che è predefinita al server). Analogo all'annotazione @rpc("authority"). Vedi Node.set_multiplayer_authority().


Descrizioni delle proprietà

MultiplayerPeer multiplayer_peer 🔗

L'oggetto peer per gestire il sistema RPC (abilitando effettivamente la connessione rete quando impostato). A seconda del peer stesso, la MultiplayerAPI diventerà un server di rete (verifica con is_server()) e imposterà la modalità di rete del nodo radice su autorità, oppure diventerà un peer client normale. Tutti i nodi figlio sono impostati per ereditare la modalità di rete come predefinito. La gestione degli eventi correlati alla rete (connessione, disconnessione, nuovi client) è eseguita tramite la connessione ai segnali della MultiplayerAPI.


Descrizioni dei metodi

MultiplayerAPI create_default_interface() static 🔗

Restituisce una nuova istanza di MultiplayerAPI predefinita.


StringName get_default_interface() static 🔗

Restituisce il nome della classe dell'implementazione MultiplayerAPI predefinita. Di solito è "SceneMultiplayer" quando SceneMultiplayer è disponibile. Vedi set_default_interface().


PackedInt32Array get_peers() 🔗

Restituisce gli ID peer di tutti i peer connessi del multiplayer_peer di questa MultiplayerAPI.


int get_remote_sender_id() 🔗

Restituisce l'ID peer del mittente per l'RPC attualmente in esecuzione.

Nota: Questo metodo restituisce 0 quando viene chiamato all'esterno di un RPC. Pertanto, l'ID peer originale potrebbe essere perso quando l'esecuzione del codice viene ritardata (ad esempio con la parola chiave await di GDScript).


int get_unique_id() 🔗

Restituisce l'ID peer univoco del multiplayer_peer di questa MultiplayerAPI.


bool has_multiplayer_peer() 🔗

Restituisce true se esiste un multiplayer_peer impostato.


bool is_server() 🔗

Restituisce true se il multiplayer_peer di questa MultiplayerAPI è valido e in modalità server (in ascolto per le connessioni).


Error object_configuration_add(object: Object, configuration: Variant) 🔗

Notifica alla MultiplayerAPI della nuova configurazione configuration per l'oggetto object. Questo metodo è utilizzato internamente da SceneTree per configurare il percorso radice per questa MultiplayerAPI (passando null e un NodePath valido come configuration). Questo metodo può essere ulteriormente utilizzato dalle implementazioni MultiplayerAPI per fornire funzionalità aggiuntive, fai riferimento all'implementazione specifica (ad esempio SceneMultiplayer) per i dettagli su come lo utilizzano.

Nota: Questo metodo è rilevante soprattutto quando si estende o si sovrascrive il comportamento di MultiplayerAPI tramite MultiplayerAPIExtension.


Error object_configuration_remove(object: Object, configuration: Variant) 🔗

Notifica alla MultiplayerAPI di rimuovere la configurazione configuration per l'oggetto object. Questo metodo è utilizzato internamente da SceneTree per configurare il percorso radice per questa MultiplayerAPI (passando null e un NodePath vuoto come configuration). Questo metodo può essere ulteriormente utilizzato dalle implementazioni MultiplayerAPI per fornire funzionalità aggiuntive, fai riferimento all'implementazione specifica (ad esempio SceneMultiplayer) per i dettagli su come lo utilizzano.

Nota: Questo metodo è rilevante soprattutto quando si estende o si sovrascrive il comportamento di MultiplayerAPI tramite MultiplayerAPIExtension.


Error poll() 🔗

Metodo utilizzato per interrogare la MultiplayerAPI. Devi preoccuparti solo di questo se imposti SceneTree.multiplayer_poll su false. Per impostazione predefinita, SceneTree interrogherà la/le sua/e MultiplayerAPI per te.

Nota: Questo metodo risulta in chiamate di RPC, quindi verranno eseguite nello stesso contesto di questa funzione (ad esempio _process, physics, Thread).


Error rpc(peer: int, object: Object, method: StringName, arguments: Array = []) 🔗

Invia un RPC al peer di destinazione. Il metodo specificato da method verrà chiamato sull'oggetto remoto object con gli argomenti arguments. L'RPC può anche essere chiamato localmente a seconda dell'implementazione e della configurazione RPC. Vedi Node.rpc() e Node.rpc_config().

Nota: Preferisci usare Node.rpc(), Node.rpc_id() o my_method.rpc(peer, arg1, arg2, ...) (in GDScript), poiché sono più veloci. Questo metodo è utile soprattutto in combinazione con MultiplayerAPIExtension quando si estendono o si sostituiscono le capacità multigiocatore.


void set_default_interface(interface_name: StringName) static 🔗

Imposta la classe dell'implementazione MultiplayerAPI predefinita. Questo metodo può essere utilizzato da moduli ed estensioni per configurare quale implementazione sarà utilizzata da SceneTree all'avvio del motore.