RemoteFunction

Pokaż przestarzałe

*Ta zawartość została przetłumaczona przy użyciu narzędzi AI (w wersji beta) i może zawierać błędy. Aby wyświetlić tę stronę w języku angielskim, kliknij tutaj.

Przedmiot RemoteFunction ułatwia synchroniczną, dwukierunkową komunikację na granicy klient-serwer.Możesz go użyć do określenia niestandardowej funkcji powrotnej i uruchomić ją ręcznie, wywołując RemoteFunction:InvokeClient() lub RemoteFunction:InvokeServer().Kod wzywający funkcję wykonuje do czasu otrzymania odpowiedzi od odbiorca.

Aby zarówno serwer, jak i klienci mieli dostęp do instancjaRemoteFunction, musi ona znajdować się w miejscu, w którym obie strony mogą ją zobaczyć, tak jak ReplicatedStorage, choć w niektórych przypadkach właściwe jest przechowywanie jej w Workspace lub wewnątrz Tool.

Jeśli wynik jest nie potrzebny, zaleca się użycie RemoteEvent, ponieważ jego wezwanie jest asynchroniczne i nie musi czekać na odpowiedź, aby kontynuować wykonywanie.Zobacz zdalne wydarzenia i powroty dla próbek kodu i szczegółów na temat RemoteFunction .

Środki ostrożności związane z transmisją

Zauważ, że jeśli wezwany RemoteFunction tworzy instancję na serwerze, nie ma gwarancji, że istnieje na klientzie, gdy funkcja wraca.Jest to szczególnie ważne w miejscach, gdzie włączono transmisję instancji i gdy stworzone instancje są lub , ponieważ części oddalone od postaci gracza mogą nie być przesyłane do klienta, a modele, które są zależą od tego, czy ich części są przesyłane.Nawet jeśli model jest Persistent, może wystąpić pewien opóźnienie między stworzeniem modelu a tym, kiedy zostanie on replikowany do klienta.

Ograniczenia parametrów

Dowolny typ obiektu Roblox, takich jak , lub inne, może zostać przekazany jako parametr, gdy zostanie uruchomiony , a także typy Luau, takie jak liczby, struny i booliany, choć powinieneś uważnie przeanalizować ograniczenia .

Podsumowanie

Metody

Wywołania zwrotne

Właściwości

Metody

InvokeClient

Wynik

Wzywa RemoteFunction, które z kolei wzywa powrotną funkcję OnClientInvoke.Ponieważ ta metoda jest używana do komunikacji z serwera do klienta, będzie działać tylko wtedy, gdy zostanie użyta w Script .

Dowolny typ obiektu Roblox, takich jak , lub inne, może być przekazany jako parametr do , a także typy Luau, takie jak liczby, struny i booliany, choć powinieneś uważnie przeanalizować ograniczenia .

Zobacz zdalne wydarzenia i powroty dla próbek kodu i szczegółów na temat RemoteFunction .

Ostrzeżenie

W praktyce serwer nie często wzywa klienta, ponieważ klienty zwykle nie mają informacji, których serwer nie ma, a działania, które tylko klient może podjąć, takie jak wyświetlanie interfejsu GUI, zwykle nie wymagają powrotu.W związku z tym, RemoteEvent:FireClient() zaleca się jako asynchniczną metodę, która nie musi czekać na kontynuację wykonywania odpowiedzi.

Jeśli prawidłowo potrzebujesz zawołać klienta z serwera, zauważ następujące ryzyka:

  • Jeśli klient rzuca błąd, serwer również rzuca błąd.
  • Jeśli klient odłączy się, gdy jest wzywany, InvokeClient() wyśle błąd.
  • Jeśli klient nie zwraca wartości, serwer zachowuje się na zawsze.

Parametry

player: Player

The Player związane z klientem, aby wezwać.

Wartość domyślna: ""
arguments: Tuple

Wartości, które należy przekazać do powrotu OnClientInvoke .

Wartość domyślna: ""

Zwroty

Wartości zwrócone z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z pow

InvokeServer

Wynik

Wzywa RemoteFunction, które z kolei wzywa powrotną funkcję OnServerInvoke.Ponieważ ta metoda jest używana do komunikacji z klienta na serwer, będzie działać tylko wtedy, gdy zostanie użyta w LocalScript .

Jeśli zwrócony wynik nie jest potrzebny, zaleca się użycie RemoteEvent:FireServer() zamiast tego, ponieważ jego wezwanie jest asynowe i nie musi czekać na kontynuację wykonywania odpowiedzi.

Dowolny typ obiektu Roblox, takich jak , lub inne, może być przekazany jako parametr do , a także typy Luau, takie jak liczby, struny i booliany, choć powinieneś uważnie przeanalizować ograniczenia .

Zobacz zdalne wydarzenia i powroty dla próbek kodu i szczegółów na temat RemoteFunction .

Parametry

arguments: Tuple

Wartości, które należy przekazać do powrotu OnServerInvoke .

Wartość domyślna: ""

Zwroty

Wartości zwrócone z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z pow

Zdarzenia

Wywołania zwrotne

OnClientInvoke

Ta metoda zwrotna jest wywoływana, gdy RemoteFunction jest wzywany z InvokeClient().Gdy funkcja przypięta wraca, przesłane zostają z powrotem wartości zwrócone do serwera wzywającego.

Zobacz zdalne wydarzenia i powroty dla próbek kodu i szczegółów na temat OnClientInvoke .

Parametry

arguments: Tuple

Parametry wysyłane za pośrednictwem InvokeClient().


Zwroty

Wartości zwracane przez funkcję zwrotną.

OnServerInvoke

Ta metoda zwrotna jest wywoływana, gdy RemoteFunction jest wzywany z InvokeServer().Gdy funkcja przypisana zostanie zwrócona, zwrócone wartości są wysyłane z powrotem do klienta wzywającego.

Zobacz zdalne wydarzenia i powroty dla próbek kodu i szczegółów na temat OnServerInvoke .

Parametry

player: Player

The Player powiązany z klientem, z którego pochodzi wezwanie InvokeServer().

arguments: Tuple

Parametry wysyłane za pośrednictwem InvokeServer().


Zwroty

Wartości zwracane przez funkcję zwrotną.