Skip to content

Sign into Xbox Live in Unity(CN)

Franklin Chen edited this page Jan 4, 2018 · 1 revision

使用 Xbox Live Unity 插件,您可以在 Unity 项目中轻松地登录 Xbox Live。您可以使用内置的 prefab,也可以将包含的脚本附加到您自定义对象中。本篇假设您已经在 Unity 项目中设置了 Xbox Live 插件。有关如何操作的信息,请参阅在 Unity 中配置 Xbox Live

配置和测试 prefabs

您可以按照如下步骤在您的场景中登陆 Xbox Live:

  1. UserProfile prefab 拖拽进场景。
  2. XboxLiveServices 拖拽进场景。

您将需要生成项目并从 Visual Studio 中运行,以便使用真实的 Xbox Live 帐户进行登录。

UserProfile Prefab

UserProfile prefab 是最重要的 Xbox Live prefab,它位于 Xbox Live\Prefabs 目录下。这个 prefab 允许用户登录到 Xbox Live,并且在用户登录之后,显示其玩家代号、玩家图片和玩家分数。通常您会在初始菜单屏幕上显示此perfab,或者在游戏启动时自动触发它。为了使用任何其他 Xbox Live prefab,您必须引入 UserProfile prefab 或手动调用 Sign-in API。具体请请参阅 UserProfile.cs 脚本和以下部分。

在 Unity Inspector 中,您可以设置如下属性:

  • Input Controller Button: 指定将用于登录Xbox Live用户的按钮。
  • Allow Guest Accounts: 支持第二个玩家使用其 Xbox Live 个人资料登录或仅作为 Guest 进行游戏。这只适用于多个用户登录的场景,更多信息请访问 Add multi-user support to your Unity Game

XboxLiveServices Prefab

要使用任何 Xbox Live prefab,您需要在初始场景中拥有 XboxLiveServices prefab 的实例。您可以通过此 prefab 包含的 XboxLiveServicesSettings 脚本来控制是否在控制台中显示Xbox Live调试信息。

使用脚本

UserProfile prefab 中用来登陆 Xbox Live 的脚本是 Xbox Live\Scripts\UserProfile.cs。其中最重要也最值得注意的函数是 SignInAsync,它调用了 XboxLiveUser.SignInSilentlyAsyncXboxLiveUser.SignInAsync 两个函数。更多的底层细节,请参阅 Authentication for UWP projects

XboxLiveUserInfo 脚本(Xbox Live\Scripts\XboxLiveUserInfo.cs)包含了最重要的两个 Xbox Live 功能。XboxLiveUserInfo.User 提供了当前已认证的用户的引用,其可能在调用各种服务时被使用。XboxLiveUserInfo.XboxLiveContext 提供了可以用来获得各种 Xbox Live 服务的上下文。

如果用户已经成功登陆了,您可以获得他们的信息。您可以参考 UserProfile.LoadProfileInfo 来看看如何得到用户的 id, gamerpic 以及更多信息。

参阅