你可以在游戏过程中使用控制台命令调试和测试在线服务插件。
执行控制台命令
在线服务插件控制台命令通过虚幻引擎(UE)控制台执行。在编辑器中运行(PIE)期间,可按一次(无反馈)或两次(详细反馈)波浪号(~)键来访问控制台。使用以下句法来执行在线服务控制台命令:
OnlineServices Index=<NUM> <INTERFACE> <FUNCTION> [ARG1] [ARG2] ...
参数
下表说明了组成在线服务插件控制台命令的参数:
| 参数 | 说明 | 额外信息 |
|---|---|---|
NUM |
要访问的服务的索引号。 |
|
INTERFACE |
要访问的功能的接口。 |
|
FUNCTION |
要使用的指定接口内的功能。 |
|
ARG1, ARG2, … |
按声明顺序组成 FUNCTION 的相关 Param 结构的参数。 |
有关在线服务控制台命令的示例,请参阅本页的控制台命令示例部分。
参数
在线服务功能要求你传递多种参数类型。由于在线服务控制台命令提供了运行在线服务功能的机制,因此实现了与这些功能参数类型相对应的不同控制台命令参数类型。在线服务控制台命令有一种特殊的方法来处理这些类型,以帮助你通过虚幻引擎控制台传递复杂的C++类型,从而使它们能够被识别并用于这些功能。
特殊类型包括:
- FAccountId
- TSharedPtr
- TOptional
- TVariant
- Objects
- TArray
- TMap
下表提供了有关传递这些特殊类型的更多信息以及一些示例:
| 类型 | 信息 | 示例 |
|---|---|---|
FAccountId |
对于
|
|
TSharedPtr |
正常键入参数名称。 技术上来说 |
|
TOptional |
使用 null 传递未设置的可选值。 |
|
TVariant |
传递TVariant的句法是
如果你有一个自定义枚举,则必须使用宏 |
下面是每个类型的示例,每个类型都有一个类型和值对:
|
Objects |
对于带有在线元数据的对象,请使用以大括号分隔的句法,直接声明所有参数。对象支持内部对象和数组。 | 下面是一些对象的示例:
|
TArray |
使用以方括号分隔的句法来表示 TArray。用于分隔列表中数值的逗号是可选项。 |
下面是相同的
|
TMap |
使用以大括号分隔的句法来表示 TMap。TMap 不支持丰富的句法,因此嵌套对象、数组等可能无法正常解析。 |
下面是一个
|
控制台命令示例
本节包含几个控制台命令示例,你可以在项目中启用在线服务插件后使用这些命令。要使用在线服务控制台命令,请确保你已经:
- 启用在线服务插件。
- 已在你的项目中配置了可用的插件
- 获取你希望在项目代码中使用的服务的引用。
如果你没有检索要使用的服务的引用并对每个接口进行适当配置,这些控制台命令在你的项目中可能不会像下面这样运行。
列出可用的在线服务
命令
OnlineServices List
此命令列出可通过在线服务插件访问的平台服务。
示例输出
0: Null
1: Epic
2: Steam
...
在此示例输出中,有多个在线平台服务可用,可以在在线服务控制台命令中使用相应的索引号进行引用。例如,Null 可以用 Index=0 引用,Epic 可以用 Index=1 引用,Steam 可以用 Index=2 引用等等。
获取本地在线用户
命令
OnlineServices Index=0 Auth GetLocalOnlineUserByPlatformUserId 0
示例输出
LogConsoleResponse: Display: GetLocalOnlineUserByPlatformUserId result: { AccountInfo: [{ AccountId: Null:1 (ID_STRING), PlatformUserId: 0, LoginStatus: LoggedIn, Attributes: {DisplayName:String:ID_STRING} }] }
获取作品文件
命令
OnlineServices Index=0 TitleFile GetEnumeratedFiles 0
示例输出
LogConsoleResponse: Display: GetEnumeratedFiles result: { Filenames: [StatusFile] }
输出结果显示,有一个作品文件在后台在线服务中注册,名为"StatusFile"。
更多信息
有关本页内容的更多信息,请参阅以下页面: