RemoteFunction
*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
Invoca o RemoteFunction que, por sua vez, chama o OnClientInvoke retorno de chamada.
Invoca o RemoteFunction que, por sua vez, chama o OnServerInvoke retorno de chamada.
Callbacks
Chamada de volta quando o RemoteFunction é invocado com InvokeClient() .
Chamada de volta quando o RemoteFunction é invocado com InvokeServer() .
Propriedades
Métodos
InvokeClient
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
Valores a serem passados ao retorno de chamada OnClientInvoke.
Devolução
Valores retornados do retorno de chamada OnClientInvoke .
InvokeServer
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
Valores a serem passados ao retorno de chamada OnServerInvoke.
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
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
O Player associado ao cliente de onde a chamada InvokeServer() se origina.
Os parâmetros enviados através de InvokeServer() .
Devolução
Valores retornados pela função de retorno de chamada.