RemoteFunction

Visualizza obsoleti

*Questo contenuto è tradotto usando AI (Beta) e potrebbe contenere errori. Per visualizzare questa pagina in inglese, clicca qui.

L'oggetto RemoteFunction facilita la comunicazione sincrona tra il confine client-server. Puoi usarlo per definire una funzione richiamata personalizzata e invocarla manualmente chiamando Class.RemoteFunction:ExecuteClient() o RemoteFunction:InvokeClient(). Il codice che invoca la funzione 2>rende2> fino a quando

Per consentire sia al server che ai client di accedere a un'istanza RemoteFunction, deve essere in un luogo in cui entrambi i lati possano vederla, come ReplicatedStorage , anche se in alcuni casi è appropriato memorizzarlo in Workspace o all'interno di un 1> Class.Tool1> .

Se il risultato è non necessario, è consigliato utilizzare un RemoteEvent invece, poiché la sua chiamata è asincrona e non richiede l'attesa per continuare l'esecuzione. Vedi Remote Events and Callbacks per esempi di codice e ulteriori dettagli su 1> Class.RemoteFunction1> .

Precauzioni per lo streaming

Nota che se un RemoteFunction viene invocato, crea un'istanza

Limitazioni dei parametri

Qualsiasi tipo di oggetto Roblox, come un Enum , Instance , o altri possono essere passati come parametro quando viene invocato un RemoteFunction , nonché i tipi Luau come numeri, string e booleane, anche se dovresti esplorare attentamente le 1>limitazioni1> .

Proprietà

Metodi

InvokeClient

Resa

Invoca il RemoteFunction che a sua volta chiama il OnClientInvoke Richiama. Poiché questo metodo viene utilizzato per comunicare dal server a un client, funzionerà solo quando viene utilizzato in un Script .

Qualsiasi tipo di oggetto Roblox, come un Enum , Instance , o altri possono essere passati come parametro a Class.RemoteFunction:ExecuteClient()|ExecuteClient() , così come i tipi Luau come numeri, string e booleane, anche se dovresti esplorare attentamente le 2>限azioni2>.

Vedi Eventi e chiamate remoti per esempi di codice e ulteriori dettagli su RemoteFunction .

Avviso

In pratica, il server non chiama spesso il client, poiché i client di solito non hanno informazioni che il server non ha, e azioni che solo un client può eseguire, come visualizzare un GUI or Intefaccia grafica utente, di solito non richiede un Richiama. Come tale, RemoteEvent:FireClient() è raccomandato come metodo asincrono che non richiede una risposta per continuare l'esecuzione.

Se hai effettivamente bisogno di invocare un client dal Server, considera i seguenti rischi:

  • Se il client lancia un errore, il server lancia anche l'errore.
  • Se il client si disconnette mentre viene invocato, InvokeClient() mostra un errore.
  • Se il client non restituisce un valore, il server genera per sempre.

Parametri

player: Player

Il Player associato al client per essere invocato.

arguments: Tuple

Valori da passare al OnClientInvoke Richiama.


Restituzioni

I valori restituiti dal OnClientInvoke Richiama.

InvokeServer

Resa

Invoca il RemoteFunction che a sua volta chiama il OnServerInvoke Richiama. Poiché questo metodo viene utilizzato per comunicare dal client al Server, funzionerà solo quando viene utilizzato in un LocalScript .

Se non è necessario un risultato restituito, è consigliato utilizzare RemoteEvent:FireServer() invece, poiché la sua chiamata è asincrona e non richiede l'attesa per l'esecuzione.

Qualsiasi tipo di oggetto Roblox, come un Enum , Instance , o altri possono essere passati come parametro a Class.RemoteFunction:ExecuteServer()|ExecuteServer() , nonché altri tipi come numeri, string e booleani, anche se dovresti esplorare attentamente le 1>limitazioni1> .

Vedi Eventi e chiamate remoti per esempi di codice e ulteriori dettagli su RemoteFunction .

Parametri

arguments: Tuple

Valori da passare al OnServerInvoke Richiama.


Restituzioni

I valori restituiti dal OnServerInvoke Richiama.

Eventi

Richiami

OnClientInvoke

Parametri

arguments: Tuple

Restituzioni

OnServerInvoke

Parametri

player: Player
arguments: Tuple

Restituzioni