RemoteFunction

Mostrar obsoleto

*Este contenido se traduce usando la IA (Beta) y puede contener errores. Para ver esta página en inglés, haz clic en aquí.

El objeto RemoteFunction facilita la comunicación sincronizada de ida y vuelta a través de la frontera cliente-servidor.Puedes usarlo para definir una función de llamada personalizada y invocarla manualmente llamando RemoteFunction:InvokeClient() o RemoteFunction:InvokeServer() .El código que invoca la función produce hasta que recibe una respuesta del destinatario.

Para que tanto el servidor como los clientes accedan a una instancia RemoteFunction , debe estar en un lugar donde ambas partes puedan verla, como ReplicatedStorage , aunque en algunos casos es apropiado almacenarla en Workspace o dentro de un Tool .

Si el resultado es no necesario, se recomienda que uses un RemoteEvent en su lugar, ya que su llamada es asincrónica y no necesita esperar a que una respuesta continúe la ejecución.Vea eventos remotos y llamadas de devolución para muestras de código y más detalles sobre RemoteFunction .

Precauciones de transmisión

Tenga en cuenta que si un invocado RemoteFunction crea una instancia en el servidor, no hay garantía de que exista en el cliente cuando la función regrese.Esto es particularmente importante en lugares donde el streaming de instancias está habilitado y cuando las instancias creadas son BaseParts o Models , ya que las partes que están lejos del personaje del jugador pueden no ser transmitidas al cliente, y los modelos que son Atomic dependen de si sus partes se transmiten.Incluso si un modelo es Persistent , puede haber algún retraso entre la creación del modelo y cuando se replica al cliente.

Limitaciones de parámetros

Cualquier tipo de objeto de Roblox como un Enum , Instance o otros se puede pasar como parámetro cuando se invoque un RemoteFunction , así como tipos de Luau como números, cadenas y booleanos, aunque deberías explorar cuidadosamente las limitaciones de .

Resumen

Métodos

Llamadas

Propiedades

Métodos

InvokeClient

Proporciona

Invoca el RemoteFunction que a su vez llama al llamado de devolución OnClientInvoke.Dado que este método se usa para comunicarse desde el servidor a un cliente, solo funcionará cuando se use en un Script .

Cualquier tipo de objeto de Roblox como un , , o otros se pueden pasar como parámetro a , así como tipos Luau como números, cadenas y booleanos, aunque deberías explorar cuidadosamente las limitaciones de .

Vea eventos remotos y llamadas de devolución para muestras de código y más detalles sobre RemoteFunction .

Atención/advertencia

En la práctica, el servidor no invoca con frecuencia al cliente, ya que los clientes no suelen tener información que el servidor no tenga y acciones que solo un cliente puede tomar, como mostrar una interfaz Interfaz gráfica (o GUI), por lo general no requieren una llamada de devolución.Como tal, RemoteEvent:FireClient() se recomienda como un método asíncrono que no necesita esperar a que una respuesta continúe la ejecución.

Si necesitas invocar legítimamente a un cliente desde el servidor, ten en cuenta los siguientes riesgos:

  • Si el cliente lanza un error, el servidor también lanza el error.
  • Si el cliente se desconecta mientras se invoca, InvokeClient() lanza un error.
  • Si el cliente no devuelve un valor, el servidor se rinde para siempre.

Parámetros

player: Player

El Player asociado con el cliente para invocar.

Valor predeterminado: ""
arguments: Tuple

Valores para pasar al devolución de llamadade llamada OnClientInvoke.

Valor predeterminado: ""

Devuelve

Valores devueltos desde la llamada de devolución OnClientInvoke .

InvokeServer

Proporciona

Invoca el RemoteFunction que a su vez llama al llamado de devolución OnServerInvoke.Dado que este método se usa para comunicarse desde un cliente al servidor, solo funcionará cuando se use en un LocalScript .

Si un resultado devuelto no es necesario, se recomienda usar RemoteEvent:FireServer() en su lugar, ya que su llamada es asincrónica y no necesita esperar a que una respuesta continúe la ejecución.

Cualquier tipo de objeto de Roblox como un , , o otros se pueden pasar como parámetro a , así como tipos Luau como números, cadenas y booleanos, aunque deberías explorar cuidadosamente las limitaciones de .

Vea eventos remotos y llamadas de devolución para muestras de código y más detalles sobre RemoteFunction .

Parámetros

arguments: Tuple

Valores para pasar al devolución de llamadade llamada OnServerInvoke.

Valor predeterminado: ""

Devuelve

Valores devueltos desde la llamada de devolución OnServerInvoke .

Eventos

Llamadas

OnClientInvoke

Esta llamada de devolución se realiza cuando se invoca el RemoteFunction con InvokeClient() .Cuando la función vinculada regresa, los valores devueltos se envían de vuelta al servidor de llamada.

Vea eventos remotos y llamadas de devolución para muestras de código y más detalles sobre OnClientInvoke .

Parámetros

arguments: Tuple

Los parámetros enviados a través de InvokeClient() .


Devuelve

Valores devueltos por la función de llamada de devolución.

OnServerInvoke

Esta llamada de devolución se realiza cuando se invoca el RemoteFunction con InvokeServer() .Cuando la función vinculada regresa, los valores devueltos se envían de vuelta al cliente llamador.

Vea eventos remotos y llamadas de devolución para muestras de código y más detalles sobre OnServerInvoke .

Parámetros

player: Player

El Player asociado con el cliente de donde proviene la llamada InvokeServer().

arguments: Tuple

Los parámetros enviados a través de InvokeServer() .


Devuelve

Valores devueltos por la función de llamada de devolución.