启动参数

注意:本页上的内容适用于 Unity Cloud 后台中的 Multiplay Hosting。如果您使用 Clanforge,请参阅 Clanforge 文档

启动参数是指游戏服务器在启动时接收到的变量。这些变量会在任何其他配置变量之前加载,与配置变量server.json 文件分开。启动参数非常适合用于加载服务器启动后需要立即访问的信息。

在以下场景下,您可能要使用启动参数而不是配置变量:

  • 初始化端口号。
  • 设置日志目录。

不过,在大多数情况下,更适合使用配置变量而不是启动参数。

必须将每个启动参数变量置于美元符号 ($$) 之间,每侧两个美元符号。例如,名为 port 的启动参数转换为 $$port$$。以下代码片段提供了示例启动参数。

-port $$port$$ -queryport $$query_port$$ -log $$log_dir$$

服务器变量

与版本配置变量类似,您可以在启动参数中使用以下服务器特定变量。下表提供了示例服务器变量及其类型、描述和示例值。

变量类型描述示例值
$$commandline$$字符串在游戏服务器或应用程序启动时向其传递的一系列启动参数。-config path/to/server.json
$$config_dir$$字符串Unity 配置 server.json 所在的目录。/mnt/unity/
$$fleetid$$字符串服务器所属机群的 ID。5050693b-0bea-4752-858b-52c074d485fa
$$game_exe$$字符串版本可执行文件的名称。server-linux
$$log_dir$$字符串服务器应将日志文件发送到的目录。
/mnt/unity/logs/
$$file_dir$$字符串服务器应将游戏文件发送到的目录。日志文件也可以写入到此处。
/mnt/unity/files/
$$machineid$$整数运行服务器的机器的 ID。123456
$$port$$整数服务器为实现流量传输而应绑定的网络端口。1234
$$query_port$$整数服务器为实现查询协议流量传输而应绑定的网络端口。5678
$$query_type$$字符串服务器所运行版本支持的查询协议sqp
$$serverid$$整数服务器 ID。123456
$$regionid$$字符串服务器所在地区的 ID。3d9e29e8-3bb3-4cab-9d11-b79c90d0934d
$$regionname$$字符串服务器所在地区的名称。North America
$$ip$$字符串服务器的 IP(版本 4)地址。1.2.3.4
$$ipv6$$字符串服务器的 IP(版本 6)地址。2001:db8:3333:4444:5555:6666:7777:8888
$$timestamp$$字符串服务器启动时间的 UTC 时间戳。1661430055

默认启动参数

以下各节分别展示了使用 Unity 创作的游戏和使用 Unreal 创作的游戏的默认启动参数。

注意:版本配置变量放置在成对的美元符号中间 ($$)。

Unity

对于通过 Unity 创作的游戏,默认启动参数包括 -nographics-batchmode-logFile

提示:请参阅 Unity 编辑器命令行参数,详细了解可以使用的各种不同标志。

-nographics -batchmode -port $$port$$ -logFile $$log_dir$$/Engine.log
启动参数描述
-nographics运行不含图形的游戏可执行文件。
-batchmode批处理模式运行 Unity。在批处理模式下,Unity 运行命令行参数,无需人机交互。
-logFile指定服务器保存日志文件的位置。它可以接受使用与服务器 ID 相关的目录,并且可以包含版本配置变量

此外,启动参数还可以包含查询端口 (queryPort) 和查询协议 (queryType),具体取决于游戏。

-nographics -batchmode -logFile $$log_dir$$/Engine.log -queryPort $$query_port$$ -queryType $$query_type$$

Unreal

对于通过 Unreal 创作的游戏,默认启动参数包括 -log-port

提示:请参阅 Unreal Engine 命令行参数,了解可以使用的各种不同标志的更多信息。

-log=$serverid.log -port=$$port$$
启动参数描述
-log指定服务器保存日志文件的位置。
-port指定客户端可以用于连接游戏服务器的端口。

启动参数还可以包含查询端口 (queryPort) 和查询协议 (queryType),具体取决于游戏和您使用的 SDK。

-log=$serverid.log -port=$$port$$ -queryPort $$query_port$$ -queryType $$query_type$$