Skip to content

TeleportOptions ​

TeleportOptions 用于配置玩家跨服务器传送时的行为参数,可指定是否预留新服务器、目标实例标识以及携带的自定义数据。通过设置 ReservedServerAccessCode、ServerInstanceId 和 ShouldR...

概览 ​

TeleportOptions 用于配置玩家跨服务器传送时的行为参数,可指定是否预留新服务器、目标实例标识以及携带的自定义数据。通过设置 ReservedServerAccessCode、ServerInstanceId 和 ShouldReserveServer 等属性,能够精确控制传送目标与方式,并利用 SetTeleportData 传递可序列化的上下文信息。

可通过 TeleportOptions.New() 构造

代码示例 ​

创建传送选项并附加非敏感业务数据

lua
-- @runtime server
local TeleportService = game:GetService('TeleportService')
local options = TeleportService:CreateTeleportOptions()
options.ShouldReserveServer = true
options:SetTeleportData({ source = 'lobby' })
print('是否预留新服务器:', options.ShouldReserveServer)

函数 ​

GetTeleportData ​

签名:GetTeleportData() -> Any

获取当前 TeleportOptions 实例中已设置的传送附带数据。

返回值 Any

读取传送附带数据

lua
-- @runtime server
local options = game:GetService("TeleportService"):CreateTeleportOptions()
options:SetTeleportData({ source = 'lobby' })
local data = options:GetTeleportData()
print('来源:', data and data.source)

SetTeleportData ​

签名:SetTeleportData(teleportData: Any)

设置传送时附带的任意数据,可在目标服务器通过 Player:GetJoinData() 获取。

参数类型说明
teleportDataAny任意 Lua 数据

设置可序列化的传送附带数据

lua
-- @runtime server
local options = game:GetService("TeleportService"):CreateTeleportOptions()
options:SetTeleportData({ source = 'lobby', playerLevel = 5 })
local data = options:GetTeleportData()
print('来源:', data and data.source)

属性 ​

名称类型默认值说明
ReservedServerAccessCodeString""预留服务器战场实例的访问码,通过 TeleportService:ReserveServerAsync 或 TeleportService:ApplyIngameMatchAsync 获取。
ServerInstanceIdString""目标服务器战场实例的 ID,用于传送到指定运行中的实例(如好友所在的服务器)。
ShouldReserveServerBooltrue是否在传送时创建一个新的服务器战场实例。