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, a senso unico, attraverso il confine client-server.Puoi usarlo per definire una funzione di richiamo personalizzata e invocarla manualmente chiamando RemoteFunction:InvokeClient() o RemoteFunction:InvokeServer() .Il codice che invoca la funzione produce fino a quando non riceve una risposta dal Destinatario.

Per consentire a entrambi il server e i client di accedere a un'esempioRemoteFunction , deve essere in un luogo in cui entrambe le parti possono vederla, come ReplicatedStorage , anche se in alcuni casi è appropriato conservarla in Workspace o all'interno di un Tool .

Se il risultato è non necessario, si consiglia di utilizzare un RemoteEvent invece, poiché la sua chiamata è asincrona e non ha bisogno di aspettare una risposta per continuare l'esecuzione.Vedi Eventi e richiami remoti per esempi di codice e ulteriori dettagli su RemoteFunction .

Precauzioni di streaming

Si noti che se un invocato RemoteFunction crea un'istanza sul Server, non c'è alcuna garanzia che esista sul client quando la funzione viene restituita.Questo è particolarmente importante nei luoghi in cui l'istantza streaming è abilitata e quando le istanze create sono BaseParts o Models , poiché le parti che sono lontane dal personaggio del Giocatorepotrebbero non essere trasmesse al client e i modelli che sono Atomic dipendono dal fatto che le loro parti vengono trasmesse.Anche se un modello è Persistent , ci può essere qualche ritardo tra la creazione del modello e quando viene replicato al client.

Limitazioni dei parametri

Qualsiasi tipo di oggetto Roblox come un , , o altri può essere passato come parametro quando viene invocato un , così come i tipi Luau come numeri, stringhe e booleani, anche se dovresti esplorare attentamente le limitazioni .

Sommario

Metodi

Richiami

Proprietà

Metodi

InvokeClient

Resa

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

Qualsiasi tipo di oggetto Roblox come un , o altri può essere passato come parametro a , così come i tipi Luau come numeri, stringhe e booleani, anche se dovresti esplorare attentamente le limitazioni .

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

Avviso

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

Se hai bisogno legittimamente di invocare un client dal Server, nota i seguenti rischi:

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

Parametri

player: Player

Il Player associato al client per invocare.

Valore predefinito: ""
arguments: Tuple

Valori da passare al RichiamaOnClientInvoke .

Valore predefinito: ""

Restituzioni

Valori restituiti dal RichiamaOnClientInvoke .

InvokeServer

Resa

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

Se un risultato restituito non è necessario, è consigliato utilizzare RemoteEvent:FireServer() invece, poiché la sua chiamata è asincrona e non ha bisogno di aspettare una risposta per continuare l'esecuzione.

Qualsiasi tipo di oggetto Roblox come un , o altri può essere passato come parametro a , così come i tipi Luau come numeri, stringhe e booleani, anche se dovresti esplorare attentamente le limitazioni .

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

Parametri

arguments: Tuple

Valori da passare al RichiamaOnServerInvoke .

Valore predefinito: ""

Restituzioni

Valori restituiti dal RichiamaOnServerInvoke .

Eventi

Richiami

OnClientInvoke

Questa richiamata viene eseguita quando il RemoteFunction viene invocato con InvokeClient() .Quando la funzione vincolata viene restituita, i valori restituiti vengono inviati al Serverdi chiamata.

Vedi Eventi e richiami remoti per esempi di codice e ulteriori dettagli su OnClientInvoke .

Parametri

arguments: Tuple

I parametri inviati attraverso InvokeClient() .


Restituzioni

Valori restituiti dalla funzione callback.

OnServerInvoke

Questa richiamata viene eseguita quando il RemoteFunction viene invocato con InvokeServer() .Quando la funzione vincolata viene restituita, i valori restituiti vengono inviati al client di chiamata.

Vedi Eventi e richiami remoti per esempi di codice e ulteriori dettagli su OnServerInvoke .

Parametri

player: Player

Il Player associato al client che la chiamata InvokeServer() origina.

arguments: Tuple

I parametri inviati attraverso InvokeServer() .


Restituzioni

Valori restituiti dalla funzione callback.