RemoteFunction
*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
Proprietà
Metodi
Invoca il RemoteFunction che a sua volta chiama il OnClientInvoke Richiama.
Invoca il RemoteFunction che a sua volta chiama il OnServerInvoke Richiama.
Eventi
Richiami
Richiamo per quando il RemoteFunction viene invocato con InvokeClient() .
Richiamo per quando il RemoteFunction viene invocato con InvokeServer() .
Proprietà
Metodi
InvokeClient
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
Valori da passare al RichiamaOnClientInvoke .
Restituzioni
Valori restituiti dal RichiamaOnClientInvoke .
InvokeServer
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
Valori da passare al RichiamaOnServerInvoke .
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
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
Il Player associato al client che la chiamata InvokeServer() origina.
I parametri inviati attraverso InvokeServer() .
Restituzioni
Valori restituiti dalla funzione callback.