RemoteFunction

Mostrar obsoleto

*Este conteúdo é traduzido por IA (Beta) e pode conter erros. Para ver a página em inglês, clique aqui.

O objeto RemoteFunction facilita a comunicação síncrona, de duas vias, através da fronteira cliente-servidor.Você pode usá-lo para definir uma função de retorno de chamada personalizada e invocá-la manualmente ao chamar RemoteFunction:InvokeClient() ou RemoteFunction:InvokeServer().O código que invoca a função produz até receber uma resposta do destinatário.

Para que tanto o servidor quanto os clientes acessem uma instância RemoteFunction , deve estar em um lugar onde ambas as partes possam vê-la, como ReplicatedStorage , embora, em alguns casos, seja apropriado armazená-la em Workspace ou dentro de um Tool .

Se o resultado for não necessário, é recomendado que você use um RemoteEvent em vez disso, pois sua chamada é assíncrona e não precisa esperar por uma resposta para continuar a execução.Veja Eventos e chamadas remotas para amostras de código e mais detalhes sobre RemoteFunction .

Precauções de Streaming

Observe que se um RemoteFunction cria uma instância no servidor, não há garantia de que ela exista no cliente quando a função retornar.Isso é particularmente importante em locais onde o streaming de instância está habilitado e quando as instâncias criadas são BaseParts ou Models , pois partes que estão longe do personagem do jogador podem não ser transmitidas para o cliente e modelos que são Atomic dependem se suas partes são transmitidas.Mesmo que um modelo seja Persistent , pode haver algum atraso entre a criação do modelo e quando ele é replicado para o cliente.

Limitações de Parâmetros

Qualquer tipo de objeto Roblox, como um , ou outros, pode ser passado como um parâmetro quando um for invocado, assim como tipos Luau, como números, strings e booleanos, embora você deva explorar cuidadosamente as limitações .

Resumo

Métodos

Callbacks

Propriedades

Métodos

InvokeClient

Rendimentos

Invoca o RemoteFunction que, por sua vez, chama o OnClientInvoke retorno de chamada.Como este método é usado para se comunicar do servidor para um cliente, ele só funcionará quando usado em um Script .

Qualquer tipo de objeto Roblox, como um , ou outros, pode ser passado como um parâmetro para , bem como tipos Luau como números, strings e booleanos, embora você deva explorar cuidadosamente as limitações de .

Veja Eventos e chamadas remotas para amostras de código e mais detalhes sobre RemoteFunction .

Aviso/advertência

Na prática, o servidor nem sempre invoca o cliente, pois os clientes normalmente não têm informações que o servidor não tenha e ações que apenas um cliente pode tomar, como exibir uma Interface gráfica do usuário, geralmente não requerem um retorno de chamada.Como tal, RemoteEvent:FireClient() é recomendado como um método assíncrono que não precisa esperar por uma resposta para continuar a execução.

Se você precisar invocar um cliente do servidor de forma legítima, note os seguintes riscos:

  • Se o cliente lançar um erro, o servidor lança o erro também.
  • Se o cliente se desconectar enquanto estiver sendo invocado, InvokeClient() lança um erro.
  • Se o cliente não retornar um valor, o servidor permanece para sempre.

Parâmetros

player: Player

O Player associado ao cliente para invocar.

Valor Padrão: ""
arguments: Tuple

Valores a serem passados ao retorno de chamada OnClientInvoke.

Valor Padrão: ""

Devolução

Valores retornados do retorno de chamada OnClientInvoke .

InvokeServer

Rendimentos

Invoca o RemoteFunction que, por sua vez, chama o OnServerInvoke retorno de chamada.Como este método é usado para se comunicar de um cliente para o servidor, ele só funcionará quando usado em um LocalScript .

Se um resultado retornado não for necessário, é recomendado usar RemoteEvent:FireServer() em vez disso, pois sua chamada é assíncrona e não precisa esperar que uma resposta continue a execução.

Qualquer tipo de objeto Roblox, como um , ou outros, pode ser passado como um parâmetro para , bem como tipos Luau como números, strings e booleanos, embora você deva explorar cuidadosamente as limitações de .

Veja Eventos e chamadas remotas para amostras de código e mais detalhes sobre RemoteFunction .

Parâmetros

arguments: Tuple

Valores a serem passados ao retorno de chamada OnServerInvoke.

Valor Padrão: ""

Devolução

Valores retornados do retorno de chamada OnServerInvoke .

Eventos

Callbacks

OnClientInvoke

Este retorno de chamada é chamado quando o RemoteFunction é invocado com InvokeClient() .Quando a função vinculada retorna, os valores retornados são enviados de volta ao servidor de chamada.

Veja Eventos e chamadas remotas para amostras de código e mais detalhes sobre OnClientInvoke .

Parâmetros

arguments: Tuple

Os parâmetros enviados através de InvokeClient() .


Devolução

Valores retornados pela função de retorno de chamada.

OnServerInvoke

Este retorno de chamada é chamado quando o RemoteFunction é invocado com InvokeServer() .Quando a função vinculada retorna, os valores retornados são enviados de volta ao cliente chamador.

Veja Eventos e chamadas remotas para amostras de código e mais detalhes sobre OnServerInvoke .

Parâmetros

player: Player

O Player associado ao cliente de onde a chamada InvokeServer() se origina.

arguments: Tuple

Os parâmetros enviados através de InvokeServer() .


Devolução

Valores retornados pela função de retorno de chamada.