使用回调

回调(Callback)是设置为函数对象的只写成员。开发者无法直接调用回调,而是需要 迷你世界 Studio 对回调函数进行内部触发,并向其传递回调处理程序或函数所需的相关信息。

常用重要回调

  • Close: 在游戏关闭之前触发,以便为脚本提供保存数据的机会。
  • RemoteFunction.OnClientInvoke: 当服务器调用 RemoteFunction:FireClient(player, …)RemoteFunction:FireAllClients(…) 时被调用。
  • RemoteFunction.OnServerInvoke: 当客户端调用 RemoteFunction:InvokeServer(…) 时被调用。
  • BindableFunction.OnInvoke: 当脚本调用 BindableFunction:Invoke(…) 时被调用。

回调用法

在设置回调时,开发者需要将其分配给指定函数:

local CustomNotify = SandboxNode.New("CustomNotify")

--监听事件
CustomNotify.Notify:Connect(function(v1, v2)
        print("TestNotify->"..v1.." "..v2)
        --TestNotify->100 hello
end)

由于回调拥有只写属性,开发者将无法获取回调的值。

local CustomNotify = SandboxNode.New("CustomNotify")

--监听事件
CustomNotify.Notify:Connect(function(v1, v2)
        print("TestNotify->"..v1.." "..v2)
        --TestNotify->100 hello
end)

--发送自定义事件
CustomNotify:Fire(100,"hello")

回调示例

在本示例中,我们将会创建一个 CustomNotify,并将其绑定至接收创建矩形 LocalPositionGeoSolidShape 的函数。此 CustomNotify 将会创建部件并将其放入 Workspace(工作区),并将传递给接收函数的部件名称与尺寸应用至新创建的部件。

首先,让我们来创建 BindableFunction

local CustomNotify = SandboxNode.New("CustomNotify")

然后使用 OnInvoke 回调将其与函数相连:

CustomNotify.Notify:Connect(function(LocalPos, GeoSolidShape)
  local cube = SandboxNode.New("GeoSolid")
  cube.LocalPosition = LocalPos
  cube.GeoSolidShape = GeoSolidShape
  cube.Parent = game.WorkSpace
end)

设置完毕后,开发者将可以按照下列方式调用 BindableFunction,并使用其创建新的部件:

CustomNotify:Fire(Vector3.New(0,0,0),Enum.GeoSolidShape.Cuboid)
Last Updated: