-
Notifications
You must be signed in to change notification settings - Fork 3
Sign into Xbox Live in Unity(CN)
使用 Xbox Live Unity 插件,您可以在 Unity 项目中轻松地登录 Xbox Live。您可以使用内置的 prefab,也可以将包含的脚本附加到您自定义对象中。本篇假设您已经在 Unity 项目中设置了 Xbox Live 插件。有关如何操作的信息,请参阅在 Unity 中配置 Xbox Live。
您可以按照如下步骤在您的场景中登陆 Xbox Live:
- 将 UserProfile prefab 拖拽进场景。
- 将 XboxLiveServices 拖拽进场景。
您将需要生成项目并从 Visual Studio 中运行,以便使用真实的 Xbox Live 帐户进行登录。
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。
要使用任何 Xbox Live prefab,您需要在初始场景中拥有 XboxLiveServices prefab 的实例。您可以通过此 prefab 包含的 XboxLiveServicesSettings
脚本来控制是否在控制台中显示Xbox Live调试信息。
在 UserProfile prefab 中用来登陆 Xbox Live 的脚本是 Xbox Live\Scripts\UserProfile.cs
。其中最重要也最值得注意的函数是
SignInAsync
,它调用了 XboxLiveUser.SignInSilentlyAsync
和 XboxLiveUser.SignInAsync
两个函数。更多的底层细节,请参阅 Authentication for UWP projects。
XboxLiveUserInfo
脚本(Xbox Live\Scripts\XboxLiveUserInfo.cs
)包含了最重要的两个 Xbox Live 功能。XboxLiveUserInfo.User
提供了当前已认证的用户的引用,其可能在调用各种服务时被使用。XboxLiveUserInfo.XboxLiveContext
提供了可以用来获得各种 Xbox Live 服务的上下文。
如果用户已经成功登陆了,您可以获得他们的信息。您可以参考 UserProfile.LoadProfileInfo
来看看如何得到用户的 id, gamerpic 以及更多信息。