Skip to main content
本主题旨在作为使用 Multiplayer Activity 客户端 API 基本用法的快速入门指南。本主题讨论管理活动、发送邀请以及将玩家添加到最近玩家列表。 活动 邀请 最近玩家

活动

设置活动

每当游戏开始或加入多人游戏体验时,都应创建一个活动。这样做可以让 shell 以及您游戏中的其他玩家看到该玩家的活动,并允许其他玩家可能加入正在进行的游戏。如果玩家想要加入您游戏的活动而它没有运行,将启动它并将连接字符串传递给它。 当玩家加入或离开时,游戏应更新活动。这为其他玩家提供了活动的更丰富视图,并告知他们活动是否已满。 有关活动字段的信息,请参阅活动内容 设置活动的代码示例如下。它同样适用于创建活动以及更新现有活动。
有关更多信息,请参阅以下内容: 返回本主题顶部。

获取活动

游戏可能希望了解其他玩家的活动。例如,游戏可能希望显示游戏中好友及其活动的游戏内 UI。 检索活动的代码示例如下。
有关更多信息,请参阅以下内容: 返回本主题顶部。

删除活动

当玩家结束或离开多人游戏活动时,游戏应使用以下代码删除该活动。
有关更多信息,请参阅以下内容: 返回本主题顶部。

邀请

无 UI 发送邀请

玩家可能希望直接向一位或多位其他玩家发送邀请。发送邀请之前,游戏应确保已设置活动。这确保了 shell 与您游戏之间的连续性,因为 shell 根据当前活动发送邀请。 若要在无 UI 的情况下发送邀请,在使用 XblMultiplayerActivitySetActivityAsync 设置活动后(参见上面的示例),游戏应调用 XblMultiplayerActivitySendInvitesAsync API,传入要邀请的玩家数组以及在当前活动中使用的相同连接字符串。 有关邀请内容的信息,请参阅发送请求以邀请其他玩家加入多人游戏体验。 无 UI 发送邀请的代码示例如下。
有关更多信息,请参阅以下内容:

使用 UI 发送邀请

玩家可能希望直接向一位或多位其他玩家发送邀请。发送邀请之前,游戏应确保已设置活动。这确保了 shell 与您游戏之间的连续性,因为 shell 根据当前活动发送邀请。 若要使用 UI 发送邀请,在使用 XblMultiplayerActivitySetActivityAsync 设置活动后(参见上面的示例),游戏应调用 XGameUiShowMultiplayerActivityGameInviteAsync API,传入请求用户。它将使用游戏的当前活动,并使用其连接字符串和设置邀请玩家。 有关邀请内容的信息,请参阅发送请求以邀请其他玩家加入多人游戏体验。 使用 UI 发送邀请的代码示例如下。
有关更多信息,请参阅以下内容: 返回本主题顶部。

接收邀请

若要在玩家接受邀请时得到通知,游戏可以使用 XGameInviteRegisterForEvent 注册邀请通知。每次接受邀请时,都会通过已注册的回调将格式化的 URI 传递给游戏。可以解析该 URI 以确定邀请发送者、接收者和连接字符串。连接字符串是游戏特定的,在创建多人游戏活动时设置。对于使用 Multiplayer Activity 服务的游戏,URI 的完整格式如下表所示。 当不再需要邀请通知时,可以使用 XGameInviteUnregisterForEvent 取消注册回调。注册和处理已接受邀请的代码示例如下。
有关更多信息,请参阅以下内容: 返回本主题顶部。

最近玩家

若要更新玩家的最近玩家列表,游戏应提交与当前玩家有过有意义互动的其他玩家的列表。此列表是单向的,这意味着每个玩家的客户端负责更新自己的列表,玩家的列表不会影响其他人的列表。 例如,假设一组玩家一起在游戏前大厅中并已匹配。当比赛开始时,每位玩家都会用大厅中所有其他 xuids 更新其列表。如果有新玩家加入,可以将其单独写入。
您可以决定什么构成有意义的互动。对于一款游戏,它可能是在大厅中的存在。对于另一款游戏,它可能是一位玩家射击另一位玩家。对于第三款游戏,它可能仅仅是屏幕上出现了另一位玩家。
在您可能不希望团队玩家在匹配会话开始前被看到的情况下,您可以延迟写入玩家列表,直到您希望他们彼此可见的时间。若要刷新客户端最近玩家列表,如果您需要立即强制刷新,可以调用 XblMultiplayerActivityFlushRecentPlayersAsync。否则,最近玩家列表每五秒自动刷新一次。 更新最近玩家列表和刷新更新的代码示例如下。

更新最近玩家

有关更多信息,请参阅以下内容: 返回本主题顶部。

刷新最近玩家

有关更多信息,请参阅以下内容: 返回本主题顶部。
最后修改于 2026年8月25日