前提条件
Windows PC でゲーム招待通知を受信するには、XBOX Game Bar をインストールします。XBOX Game Bar アプリは、Windows 10 OS バージョン 1903 以降には既定でインストールされています。Windows キー+G キーを押して XBOX Game Bar アプリを起動し、正しくインストールされていることを確認します。XBOX Game Bar が Windows PC にインストールされていない場合は、Microsoft Store からインストールできます。
マルチプレイヤー プロトコルの登録
マルチプレイヤー プロトコルを登録すると、ユーザーがマルチプレイヤー ゲーム招待を承諾したときにシステムがゲームをどのように起動すべきかがわかります。マルチプレイヤー プロトコルを登録するには、次のコードのように、MicrosoftGame.config ファイルにMultiplayerProtocol 要素を追加する必要があります。
Executable 属性を使用して、どの実行可能ファイルがマルチプレイヤー プロトコルを処理するかを指定できます。
マルチプレイヤー ゲーム招待コールバックの登録
XGameInviteRegisterForEvent および XGameInviteUnregisterForEvent API は非推奨になりました。代わりに XGameActivationRegisterForEvent および XGameActivationUnregisterForEvent を使用してください。移行に関するガイダンスについては、XGameActivation を参照してください。Flat C
OnActivation() ハンドラー メソッドに渡される inviteUri を保存する必要があります。その後、タイトルは、ゲームが完全に再開されたことを通知する RegisterAppStateChangeNotification を待機してから、inviteUri で提供される詳細を使用してセッションの操作に進む必要があります。
RegisterAppStateChangeNotification の詳細については、XBOX ゲーム ライフサイクル (NDA トピック) を参照してください。
XGameActivationCallback からの inviteUri の解析
ゲームがアクティベーション タイプAcceptedGameInvite で XGameActivationCallback イベントを受信すると、XGameActivationInfo 構造体から inviteUri 文字列にアクセスできます。inviteUri は次のいずれかの形式です。
ゲーム招待を承諾する場合
ユーザーがゲーム招待を承諾すると、ゲームは次のコードに示すようなinviteUri を含むゲーム招待コールバックを受信します。
inviteHandleAcceptは、ユーザーがゲーム招待を承諾したためにコールバックが開始されたことを示します。handleは、マルチプレイヤー セッションへの参加に使用する招待ハンドルです。invitedXuidは、マルチプレイヤー セッションに招待された XBOX services ユーザーの ID です。senderXuidは、ゲーム招待を送信した XBOX services ユーザーの ID です。contextは、送信者が含めた可能性のある追加の (オプションの) コンテキストです。
進行中のゲーム セッションに参加する場合
ユーザーがマルチプレイヤー セッションへの参加を試みると、ゲームは次のコードに示すようなinviteUri を含む招待コールバックを受信します。
activityHandleJoinは、ユーザーがゲーム招待を承諾したためにコールバックが開始されたことを示します。handleは、マルチプレイヤー セッションへの参加に使用するアクティビティ ハンドルです。joinerXuidは、マルチプレイヤー セッションに参加しようとしている XBOX services ユーザーの ID です。joineeXuidは、現在マルチプレイヤー セッションにいる XBOX services ユーザーの ID です。
handleId を使用したマルチプレイヤー ゲーム セッションへの参加
Multiplayer Manager の使用
Multiplayer Manager を使用している場合は、次のコードに示すように、XblMultiplayerManagerJoinLobby API を使用して、inviteUri から抽出された handleId を渡すことにより、ユーザーをマルチプレイヤー セッションに参加させることができます。また、invitedXuid には xblUserHandle を使用することもできます。
Flat C
Multiplayer API の直接使用
Multiplayer API を使用している場合は、次の手順に従って、タイトルのマルチプレイヤー セッションと招待を構成します。- XblMultiplayerGetSessionByHandleAsync API を使用してマルチプレイヤー セッション ドキュメントを取得し、
handleIdを渡します。 - XblMultiplayerSessionJoin API を使用して、ローカル ユーザーをマルチプレイヤー セッション ドキュメントに参加させます。
- XblMultiplayerWriteSessionByHandleAsync API を使用して、この変更をコミットするためにマルチプレイヤー セッション ドキュメントをサービスに書き込みます。
