本部分介绍了实现玩家登录游戏(同时使用 Xbox 服务和 PlayFab 服务)的两种方法。
重要:在开始之前,确保你已了解了 Xbox/PlayFab 用户帐户和登录的概念。
可通过两种方法让玩家登录 PlayFab 帐户。 对于使用任意 PlayFab 服务的所有游戏,建议通过 PlayFab 服务 SDK 进行登录。
但是,如果 PlayFab Party 是游戏使用的唯一 PlayFab 服务,并且游戏仅使用 Xbox 服务作为验证提供程序,请使用 PlayFab Party 的 Xbox Live 帮助程序库。
PlayFab 服务 SDK
PlayFab 服务 SDK 现在是 GDK 的一部分。 它包括 PFAuthenticationLoginWithXUserAsync 函数,用于使用 PlayFab 对 Xbox 玩家进行身份验证。 该函数具有 createAccount 参数,支持自动为玩家预配 PlayFab 帐户。
设置
- 立即下载并安装 GDK。
- 将 PlayFab.Services.C 游戏扩展库添加到游戏项目。
- 在 Visual Studio 中打开项目。 转到“项目”>“属性”以打开项目配置窗口。
- 如果已正确安装 GDK,则会在左侧的“配置属性”下看到“游戏桌面”。
- 转到“游戏桌面”>“常规”,选择“游戏扩展库”。 在弹出窗口中,选择“PlayFab.Services.C”以将其添加到项目。
将 Xbox 服务用作身份验证提供程序的建议流程
对于使用 PlayFab 服务 SDK 将玩家登录到 PlayFab 帐户的所有游戏,建议使用此流程。
- 使用 XUserAddAsync 将玩家登录到 Xbox 帐户。 有关详细信息,请参阅 XUser。
- 使用从 XUserAddAsync 返回的 XUserHandle 将玩家登录到 PlayFab。 这是在 PlayFab 服务 SDK 中使用 PFAuthenticationLoginWithXUserAsync 实现的。
- 在用户参数中提供 XUserHandle。
- 将 createAccount 标记设置为 TRUE,以确保在需要时预配新的 PlayFab 用户帐户。
要详细了解如何在 GDK 中开始使用 PlayFab,请参阅 PlayFab 服务 SDK 快速入门
PlayFab Party Xbox Live 帮助程序库
注意:如果 PlayFab Party 是游戏使用的唯一 PlayFab 服务,并且游戏仅使用 Xbox 服务作为验证提供程序,请使用此方法。 否则,请遵循 PlayFab SDK 方法下的建议流程。 PlayFab SDK 方法支持更多的身份验证提供程序和更广泛的 PlayFab 服务调用。
PlayFab Party Xbox 服务帮助程序库会检索 Xbox 服务令牌,并使用它将玩家登录到其 PlayFab 帐户。 如果玩家还没有 PlayFab 帐户,它还会自动创建一个。
设置
- 立即下载并安装 GDK。
- 使用包含在 GDK 中的 PlayFab Party SDK 和 PlayFab Party Xbox Live 帮助程序库。
- 对于使用 Unreal 和 Unity 游戏引擎的开发人员,请转到 GDK 下载网站并选择附加程序下载 Microsoft GDK Unity 插件和 PlayFab Party Online 子系统。
流向
以下流程介绍如何使用 PlayFab Party 的 Xbox Live 帮助程序库将玩家登录到 Xbox 帐户和 PlayFab 帐户。
- 使用 XUserAddAsync 将玩家登录到 Xbox 帐户。 有关更多详细信息,请参阅 XUser。
- 然后,在首次启动聊天时使用 XUserGetId 检索 Xbox 用户 ID (XUID)。
- 使用 PartyXblManager::CreateLocalChatUser 以及上一步中检索到的 XUID 创建 PartyXblLocalChatUser。
- 将此新创建的用户对象传递给 PartyXblManager::LoginToPlayFab。
- 对于 Xbox(XDK 和 GDK)和电脑 (GDK) 游戏,PartyXblManager::LoginToPlayFab 会在后台启动其他必要的请求来提取 Xbox 服务令牌,并使用它们利用其 Xbox 服务凭据登录到玩家的 PlayFab 帐户。 如果玩家的 Xbox 帐户没有关联的 PlayFab 帐户,则 API 将自动创建新的 PlayFab 帐户并与 Xbox 帐户相关联。 以这种方式创建 PlayFab 帐户时,不会与任何电子邮件或用户名关联。
- 对于非 Microsoft 游戏开发工具包 (GDK) 和非 XDK 游戏,如电脑 (Win32),你将收到 PartyXblTokenAndSignatureRequestedStateChange。 此状态更改表明您需要自己提取 Xbox 服务令牌。 游戏提取令牌后,使用 PartyXblManager::CompleteGetTokenAndSignatureRequest 将其传递给服务,这将完成登录请求。
- 如果一切正常,则结果为 PartyXblLoginToPlayFabCompletedStateChange,并带有已登录的 PlayFab 凭据(实体 ID 和 PlayFab 令牌)。
注意:对于远程用户,请使用 CreateRemoteChatUser。 远程用户流中不会涉及任何身份验证或令牌。
XUser
XUser 类是系统 API 的一部分,用于处理用户标识并登录 Microsoft 游戏开发工具包 (GDK) 游戏。
- 若要登录用户,请使用 XUserAddAsync。
- 若要检索 Xbox 服务令牌,请使用 XUserGetTokenAndSignatureUtf16Async。
若要详细了解 XUser 和登录的最佳做法,请参阅以下资源。