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...
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à
Metodi
create_default_interface() static |
|
get_default_interface() static |
|
object_configuration_add(object: Object, configuration: Variant) |
|
object_configuration_remove(object: Object, configuration: Variant) |
|
poll() |
|
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.
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).
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 🔗
void set_multiplayer_peer(value: MultiplayerPeer)
MultiplayerPeer get_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.
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).
Restituisce l'ID peer univoco del multiplayer_peer di questa MultiplayerAPI.
Restituisce true se esiste un multiplayer_peer impostato.
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.
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.