发送和接受邀请的步骤
以下步骤使用 Multiplayer Manager 向用户的好友发送邀请,以便该好友可以加入正在进行的游戏。 步骤 1、2、3 和 5 在执行邀请的设备上完成。 步骤 4 通常在被邀请者的设备上启动,在通过协议激活启动应用之后。 有关详细信息,请参阅与好友玩游戏(流程图)。初始化 Multiplayer Manager
当使用有效的会话模板名称初始化 Multiplayer Manager 时,会自动创建大厅会话对象。会话模板在服务配置中定义。在添加用户之前,服务上的大厅会话实例不会被创建。
扁平 C API
通过添加本地用户创建大厅会话
将本地登录的 XBOX 服务用户添加到大厅会话。当添加第一个用户时,会承载一个新的大厅。所有其他用户以次要用户身份被添加到现有大厅。 Multiplayer Manager 在系统外壳中通告该大厅,以便好友加入。 只有在你添加了本地用户之后,才能通过lobby() 发送邀请、设置大厅属性以及访问大厅成员。
当本地用户加入大厅时,我们建议设置他们的连接地址和任何自定义属性。
你必须对所有本地登录的用户重复此过程。
返回本主题顶部。
添加单个本地用户
扁平 C API
- XblMultiplayerManagerLobbySessionAddLocalUser
- XblMultiplayerManagerLobbySessionSetLocalMemberConnectionAddress
- XblMultiplayerManagerLobbySessionSetProperties
添加多个本地用户
扁平 C API
- XblMultiplayerManagerLobbySessionAddLocalUser
- XblMultiplayerManagerLobbySessionSetLocalMemberConnectionAddress
- XblMultiplayerManagerLobbySessionSetProperties
- 向 XBOX 服务多人游戏服务注册 Real-Time Activity 和多人游戏订阅。
- 创建大厅会话。
- 将所有本地玩家加入为活动状态。
- 上传安全设备地址 (SDA)。
- 设置成员属性。
- 注册会话变更事件。
- 将大厅会话设置为活动会话。
向好友发送邀请
显示标准 XBOX UI,玩家可以从中选择好友或最近玩过的玩家邀请加入游戏。 当玩家确认选择时,Multiplayer Manager 会向所选玩家发送邀请。 游戏也可以使用 XblMultiplayerManagerLobbySessionInviteUsers 方法向一组由 XBOX 服务用户 ID 定义的人员发送邀请。 如果你使用自己的游戏内 UI 而不是标准 XBOX UI,则此方法很有用。扁平 C API
- 显示 XBOX 标准游戏可调用 UI (TCUI)
- 直接向所选玩家发送邀请
接受邀请
当受邀玩家接受游戏邀请或通过外壳 UI 加入好友的游戏时,系统会在其设备上启动游戏。 在基于 Microsoft Game Development Kit (GDK) 的游戏中,游戏启动后,通过调用 XGameActivationRegisterForEvent 监听邀请事件。 在基于 XBOX One 软件开发套件和通用 Windows 平台 (UWP) 的游戏中,游戏启动后,Multiplayer Manager 可以使用协议激活的事件参数加入大厅。 如果未通过 XblMultiplayerManagerLobbySessionAddLocalUser 添加受邀用户,则 XblMultiplayerManagerJoinLobby 会失败,并通过JoinLobbyCompleted 事件调用 XblMultiplayerEventArgsXuid 提供邀请所针对的 xuid。
加入大厅后,我们建议设置本地成员的连接地址以及该成员的任何自定义属性。
如果不存在主机,你还可以通过 XblMultiplayerManagerLobbySessionSetSynchronizedHost 设置主机。
最后,如果游戏已在进行中且有空位容纳被邀请者,Multiplayer Manager 会自动将用户加入游戏会话。
游戏会通过 JoinGameCompleted 事件收到通知,并提供相应的错误代码和消息。
错误或成功结果通过 JoinLobbyCompleted 事件处理。
扁平 C API
- 注册 Real-Time Activity 和多人游戏订阅。
- 加入大厅会话。
- 清理现有的大厅状态。
- 将所有本地玩家加入为活动状态。
- 上传 SDA。
- 设置成员属性。
- 注册会话变更事件。
- 将大厅会话设置为活动会话。
- 加入游戏会话(如果存在)。
- 使用传输句柄。
从大厅加入游戏会话
在邀请被接受并且主机准备开始游戏后,你可以通过调用 XblMultiplayerManagerJoinGameFromLobby 启动包含大厅会话成员的新游戏。 错误或成功结果通过JoinGameCompleted 事件处理。
扁平 C API
- 创建游戏会话。
- 将所有本地玩家加入为活动状态。
- 上传 SDA。
- 设置成员属性。
- 注册会话变更事件。
- 通过大厅会话通告游戏。
