在线服务权限接口(Online Services Privileges Interface) 管理玩家的在线权限。权限指的是玩家执行以下操作的能力:
- 在线玩游戏。
- 参与跨平台游戏。
- 与其他玩家通信。
- 使用社区生成的内容。
API 概述
函数
下表概述了权限接口提供的函数:
| 函数 | 说明 |
|---|---|
QueryUserPrivilege |
为提供的用户查询给定权限。 |
枚举类
权限接口通过两个枚举类传达用户权限和用户权限状态,而权限状态由 EPrivilegeResults 提供。
EUserPrivileges
用户权限由 EUserPrivileges 枚举类表示:
| 值 | 说明 |
|---|---|
CanPlay |
指定用户是否可以玩游戏,无论在线或离线。 |
CanPlayOnline |
指定用户是否可以通过在线模式玩游戏。 |
CanCommunicateViaTextOnline |
指定用户是否可以使用文本聊天。 |
CanCommunicateViaVoiceOnline |
指定用户是否可以使用语音聊天。 |
CanUseUserGeneratedContent |
指定用户是否可以使用其他用户生成的内容。 |
CanCrossPlay |
指定用户是否可以参与跨平台游戏。 |
EPrivilegeResults
用户权限状态由一个或多个 EPrivilegeResults 提供:
| 值 | 说明 |
|---|---|
NoFailures |
用户拥有请求的权限。 |
RequiredPatchAvailable |
需要补丁,用户才能使用权限。 |
RequiredSystemUpdate |
需要系统更新,用户才能使用权限。 |
AgeRestrictionFailure |
权限由于家长控制失败而受限制。 |
AccountTypeFailure |
权限需要高级账户。 |
UserNotFound |
用户无效。 |
UserNotLoggedIn |
用户必须登录才能使用权限。 |
ChatRestriction |
用户被禁止聊天。 |
UGCRestriction |
用户被禁止访问用户生成的内容(UGC)。 |
GenericFailure |
平台因未知原因而故障,并处理其自己的对话。 |
OnlinePlayRestricted |
在线游戏被限制。 |
NetworkConnectionUnavailable |
检查失败,因为网络不可用。 |
用户权限
调用 QueryUserPrivilege ,确定是否允许用户在你的游戏中使用特定在线功能或权限。QueryUserPrivilege 需要你提供用户的本地账户ID和相关权限作为参数。QueryUserPrivilege 返回的结果指示是否允许你指定的用户获得你指定的权限。如果不允许该用户使用查询的权限,结果包含了具体原因。
不允许用户使用权限的原因可能有多种。因此,结果的结构是 EPrivilegeResults 值(表示不允许此用户使用所提供权限的原因)的累积按位或运算。如果允许该用户使用此权限,则查询将返回 EPrivilegeResults::NoFailures ,这表示没有什么阻止用户使用所需的权限。
特定权限可以更改何时暂停游戏。请务必在游戏返回活动状态时重新查询用户权限,因为特定游戏选项可能不再可用。
更多信息
头文件
直接查阅 Privileges.h 头文件,根据需要了解更多信息。权限接口头文件 Privileges.h 位于以下目录中:
UNREAL_ENGINE_ROOT\Engine\Plugins\Online\OnlineServices\Source\OnlineServicesInterface\Public\Online
如需有关如何获取UE源代码的说明,请参阅关于下载虚幻引擎源代码的文档。