RemoteFunction
*Dieser Inhalt wurde mit KI (Beta) übersetzt und kann Fehler enthalten. Um diese Seite auf Englisch zu sehen, klicke hier.
Das RemoteFunction -Objekt erleichtert die synchronische, zweckmäßige Kommunikation über die Client-Server-Grenze.Sie können es verwenden, um eine benutzerdefinierte Rückruffunktion zu definieren und sie manuell aufzurufen, indem Sie RemoteFunction:InvokeClient() oder RemoteFunction:InvokeServer() anrufen.Der Code, der die Funktion aufruft, gibt bis er eine Antwort vom Empfänger erhält aus.
Um sowohl der Server als auch die Clients auf eine RemoteFunction zugreifen können, muss sie an einem Ort sein, an dem beide Seiten sie sehen können, wie z. B. ReplicatedStorage, obwohl es in manchen Fällen angemessen ist, sie in Workspace oder innerhalb einer Tool zu speichern.
Wenn das Ergebnis nicht benötigt wird, wird empfohlen, stattdessen ein zu verwenden, da sein Aufruf asynchron ist und keine Antwort warten muss, um die Ausführung fortzusetzen.Siehe Remote-Ereignisse und Rückrufe für Code-Beispiele und weitere Details zu RemoteFunction .
Streaming-Vorsichtsmassnahmen
Beachten Sie, dass, wenn ein aufgerufenes RemoteFunction eine Instanz auf dem Server erstellt, es keine Garantie gibt, dass sie auf dem Client existiert, wenn die Funktion zurückkehrt.Dies ist besonders wichtig an Orten, an denen der Instanz-Streaming aktiviert ist, und wenn die erstellten Instanzen sind oder , da Teile, die weit weg vom Charakter des Spieler:insind, möglicherweise nicht an den Client gestreamt werden, und Modelle, die sind, hängen davon ab, ob ihre Teile gestreamt werden.Selbst wenn ein Modell Persistent ist, kann es zu Verzögerungen zwischen der Erstellung des Modells und der Replikation auf den Client kommen.
Limitierung der Parameter
Jede Art von Roblox-Objekt wie ein Enum , Instance oder andere kann als ein Parameter übergeben werden, wenn ein RemoteFunction aufgerufen wird, sowie Luau-Typen wie Zahlen, Zeichen und Booleen, obwohl Sie die Einschränkungen sorgfältig erforschen sollten.
Zusammenfassung
Methoden
Ruft die RemoteFunction aus, die wiederum den OnClientInvoke Callbackaufruft.
Ruft die RemoteFunction aus, die wiederum den OnServerInvoke Callbackaufruft.
Callbacks
Rückruf für den Fall, dass die RemoteFunction mit InvokeClient() aufgerufen wird.
Rückruf für den Fall, dass die RemoteFunction mit InvokeServer() aufgerufen wird.
Eigenschaften
Methoden
InvokeClient
Ruft die RemoteFunction aus, die wiederum den OnClientInvoke Callbackaufruft.Da diese Methode verwendet wird, um vom Server auf einen Client zu kommunizieren, wird sie nur funktionieren, wenn sie in einem Script verwendet wird.
Jede Art von Roblox-Objekt wie ein Enum , Instance oder andere kann als ein Parameter an InvokeClient() übergeben werden, sowie Luau-Typen wie Zahlen, Zeichen und Booleen, obwohl Sie die Einschränkungen sorgfältig erforschen sollten.
Siehe Remote-Ereignisse und Rückrufe für Code-Beispiele und weitere Details zu RemoteFunction .
Warnung
In der Praxis ruft der Server nicht oft den Client auf, da Clients in der Regel keine Informationen haben, die der Server nicht hat, und Aktionen, die nur ein Client durchführen kann, wie das Anzeigen einer grafische Benutzeroberfläche, normalerweise keinen Callbackerfordern.Als solche wird RemoteEvent:FireClient() empfohlen, als asynchrone Methode, die nicht darauf warten muss, dass eine Antwort die Ausführung fortsetzt.
Wenn du einen Client vom Server legitim auslösen musst, beachte die folgenden Risiken:
- Wenn der Client einen Fehler wirft, wirft der Server den Fehler ebenfalls.
- Wenn der Client während der Ausführung abbricht, InvokeClient() wirft er einen Fehler.
- Wenn der Client keinen Wert zurückgibt, gibt der Server für immer auf.
Parameter
Werte, die an den OnClientInvoke Callbackübergeben werden.
Rückgaben
Werte, die aus der OnClientInvoke Callbackzurückgegeben werden.
InvokeServer
Ruft die RemoteFunction aus, die wiederum den OnServerInvoke Callbackaufruft.Da diese Methode verwendet wird, um vom Client zum Server zu kommunizieren, wird sie nur funktionieren, wenn sie in einem LocalScript verwendet wird.
Wenn ein zurückgegebenes Ergebnis nicht benötigt wird, wird empfohlen, stattdessen RemoteEvent:FireServer() zu verwenden, da sein Aufruf asynchron ist und keine Antwort warten muss, um die Ausführung fortzusetzen.
Jede Art von Roblox-Objekt wie ein Enum , Instance oder andere kann als ein Parameter an InvokeServer() übergeben werden, sowie Luau-Typen wie Zahlen, Zeichen und Booleen, obwohl Sie die Einschränkungen sorgfältig erforschen sollten.
Siehe Remote-Ereignisse und Rückrufe für Code-Beispiele und weitere Details zu RemoteFunction .
Parameter
Werte, die an den OnServerInvoke Callbackübergeben werden.
Rückgaben
Werte, die aus der OnServerInvoke Callbackzurückgegeben werden.
Ereignisse
Callbacks
OnClientInvoke
Dieser Rückruf wird aufgerufen, wenn die RemoteFunction mit InvokeClient() aufgerufen wird.Wenn die gebundene Funktion zurückkehrt, werden die zurückgegebenen Werte an den aufrufenden Server zurückgeschickt.
Siehe Remote-Ereignisse und Rückrufe für Code-Beispiele und weitere Details zu OnClientInvoke .
Parameter
Die Parameter, die über InvokeClient() gesendet wurden.
Rückgaben
Werte, die von der Rückruffunktion zurückgegeben werden.
OnServerInvoke
Dieser Rückruf wird aufgerufen, wenn die RemoteFunction mit InvokeServer() aufgerufen wird.Wenn die gebundene Funktion zurückkehrt, werden die zurückgegebenen Werte an den aufrufenden Client zurückgeschickt.
Siehe Remote-Ereignisse und Rückrufe für Code-Beispiele und weitere Details zu OnServerInvoke .
Parameter
Die Player mit dem Client verbunden ist, von dem die InvokeServer() Anrufherkunft stammt.
Die Parameter, die über InvokeServer() gesendet wurden.
Rückgaben
Werte, die von der Rückruffunktion zurückgegeben werden.