RemoteFunction

显示已弃用

*此内容使用人工智能(Beta)翻译,可能包含错误。若要查看英文页面,请点按 此处

远程函数 对象可以促进客户端-服务器边界上的同步、双向通信。您可以使用它来定义自定义回调函数,并通过调用 RemoteFunction:InvokeClient()RemoteFunction:InvokeServer() 手动调用它。调用函数 的代码直到收到收件人的回复为止 为了让服务器和客户端都能访问 RemoteFunction 实例,必须在一个位置,两者都可以看到它,例如 ReplicatedStorage ,虽然在某些情况下,将其存储在 Workspace 或内部的 Tool 中也是合适的。

如果结果是 不需要 ,建议您使用 RemoteEvent ,因为它的调用是异步的,不需要等待响应继续执行。请参阅远程事件和回调获取代码样例和RemoteFunction

流媒体注意事项

请注意,如果调用的 RemoteFunction 在服务器上创建了实例,在函数返回时,客户端上是否存在该实例没有保证。这在启用实例 流媒体 的地方特别重要,当创建的实例是 或 时,由于远离玩家角色的部分可能不会被传送到客户端,依赖于部分是否被传送的模型可能会依赖于部分是否被传送。即使模型是 Persistent ,在模型创建和复制到客户端之间可能存在一些延迟。

参数限制

任何类型的 Roblox 对象,例如 Enum , Instance , 或其他对象,在调用 RemoteFunction 时都可以作为参数传递,以及 Luau 类型,例如数字、字符串和布林,虽然你应该仔细探索 限制

属性

方法

InvokeClient

暂停

调用 RemoteFunction ,而后调用 OnClientInvoke 回调。由于此方法用于从服务器到客户端通信,只能在 Script 中使用。

任何类型的 Roblox 对象,例如 Enum , Instance , 或其他对象,都可以作为参数传递到 InvokeClient() , 以及 Luau 类型,例如数字、字符串和布林,虽然你应该仔细探索 限制

请参阅远程事件和回调获取代码样例和RemoteFunction

警告

在实践中,服务器通常不会调用客户端,因为客户端通常没有服务器没有的信息,只有客户端才能采取的行动,例如显示 GUI,通常不需要回调。因此,RemoteEvent:FireClient() 建议作为一个异步方法,不需要等待响应继续执行。

如果你合法需要从服务器调用客户端,请注意以下风险:

  • 如果客户端抛出错误,服务器也会抛出错误。
  • 如果客户端在被调用时断开连接,InvokeClient() 将抛出错误。
  • 如果客户端没有返回值,服务器永远不会返回。

参数

player: Player

与客户端关联的 Player 用于调用。

默认值:""
arguments: Tuple

值传递到 OnClientInvoke 回调。

默认值:""

返回

OnClientInvoke 回调中返回的值。

InvokeServer

暂停

调用 RemoteFunction ,而后调用 OnServerInvoke 回调。由于此方法用于从客户端向服务器通信,只能在 LocalScript 中使用。

如果返回的结果不需要,建议使用 RemoteEvent:FireServer() ,因为其调用是异步的,不需要等待响应继续执行。

任何类型的 Roblox 对象,例如 Enum , Instance , 或其他对象,都可以作为参数传递到 InvokeServer() , 以及 Luau 类型,例如数字、字符串和布林,虽然你应该仔细探索 限制

请参阅远程事件和回调获取代码样例和RemoteFunction

参数

arguments: Tuple

值传递到 OnServerInvoke 回调。

默认值:""

返回

OnServerInvoke 回调中返回的值。

活动

回调

OnClientInvoke

此回调在 RemoteFunction 被调用时调用,当 InvokeClient() 被调用时。当绑定函数返回时,返回的值被发送回调用服务器。

请参阅远程事件和回调获取代码样例和OnClientInvoke

参数

arguments: Tuple

通过 InvokeClient() 发送的参数。


返回

由回调函数返回的值。

OnServerInvoke

此回调在 RemoteFunction 被调用时调用,当 InvokeServer() 被调用时。当绑定函数返回时,返回的值被发送回调用客户端。

请参阅远程事件和回调获取代码样例和OnServerInvoke

参数

player: Player

与客户端相关的 Player 与来自 InvokeServer() 的调用源相关。

arguments: Tuple

通过 InvokeServer() 发送的参数。


返回

由回调函数返回的值。