> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# XR-115 遊戲過程中新增和移除使用者或控制器

> 支援多位使用者的遊戲，必須在遊戲過程中針對使用者的新增和移除，或作用中玩家未指派控制器或控制器遺失的情況做出回應。

版本 1.1，5/1/2021

支援多位使用者的遊戲，必須在遊戲過程中針對使用者的新增和移除，或作用中玩家未指派控制器或控制器遺失的情況，依下列方式做出回應：

**新增控制器：** 在遊戲已選取或已獲得初始使用者和控制器之後，遊戲可以選擇性地接受來自其他控制器的輸入。支援多人體驗的遊戲，應考量如何將額外的玩家或控制器新增至遊戲過程，並使用 XUserAddAsync 將其繫結至使用者。例如，「按 A 加入」，或在玩家選擇畫面上顯示控制器剪影。

**移除控制器：** 如果在遊戲過程中移除了驅動遊戲過程之玩家的控制器，遊戲必須允許重新建立新的作用中控制器 (例如「按 A 繼續」，或針對擁有有效控制器的作用中使用者，在 ERA 中接收 ControllerPairingChanged 事件，或在 GDK 中接收 XUserDeviceAssociationChangedCallback 事件)。遊戲也可以使用 XUserFindControllerForUserWithUiAsync 叫用系統 UX，提示使用者將控制器與其使用者配對，然後返回遊戲過程。

**新增使用者：** 使用 GDK 時 (無論使用簡化或進階使用者模型)，只有在遊戲呼叫 XUserAddAsync 時才會新增使用者。

**移除主要使用者：** 對於使用 GDK 進階使用者模型的遊戲，如果主要使用者已登出 (透過指南、SPOP 或其他方式)，遊戲必須將該玩家從遊戲中移除，或重新建立使用者和作用中的控制器。

對於使用 GDK 簡化使用者模型的遊戲，移除主要玩家將導致遊戲在系統層級暫停。

在所有情境中，遊戲都會透過讓遊戲處於良好狀態來處理移除/關閉。這包括寫入連線儲存體、通知任何相關的 MPSD 工作階段該使用者已離開，以及在尚未新增新使用者的情況下，將使用者帶到適當的位置進行登入。

**移除額外/次要使用者：** 遊戲可以自行決定如何處理此事件，通常是立即將玩家從遊戲過程中移除，或在所使用之多人體驗的內容中提示玩家重新加入。

## 實作指引與最佳做法

最佳做法是在作用中玩家的控制器被移除時暫停遊戲過程。

當作用中的使用者登出時，最佳做法是盡可能儲存使用者的進度，讓使用者返回體驗時，幾乎能回到先前離開的位置。

如果遊戲支援多位已登入的使用者，當某位作用中的使用者登出，而其他作用中的使用者仍處於登入狀態時，最佳做法是盡可能讓其他作用中的使用者繼續目前的體驗。對於遊戲，已登出的使用者可以從遊戲過程中完全移除，或以電腦控制的玩家取代。

## 其他資源

## 認證測試案例

下表顯示在使用 GDK 簡化使用者模型，或 GDK 進階使用者模型、ERA 及 UWP 多使用者應用程式時，XR-115 的哪些測試案例適用於您的遊戲。

| 測試案例 | 適用於 GDK 簡化使用者模型 | 適用於 GDK 進階使用者模型、ERA 及 UWP MUA |
| - | - | - |
| 115-01 新增使用者 | 否 | 是 \* |
| 115-02 移除控制器 | 是 | 是 |
| 115-03 移除使用者 | 否 | 是 |

\* **115-01 新增使用者**僅適用於 ERA 和 UWP 多使用者應用程式。使用 GDK 時，遊戲只能看到其刻意新增的使用者。透過殼層新增的使用者，對 GDK 遊戲而言是未知的。

<br />

**115-01 新增使用者**

> **測試步驟**
>
> 1. 登入設定檔 A，並確保沒有其他設定檔登入。
> 2. 啟動遊戲並進入遊戲過程。
> 3. 在使用遊戲期間的各個時間點，連接第二個控制器並登入設定檔 B。
> 4. 設定檔 B 嘗試向遊戲提供控制器輸入。
>
> **預期結果**<br />ERA 或 UWP MUA 遊戲不得自動中斷作用中使用者的體驗。
>
> **通過範例**
>
> 1. 遊戲不會自動將作用中的使用者切換為新使用者，也不會中斷作用中使用者的體驗。
> 2. 遊戲可以根據目前的內容，選擇允許設定檔 B 控制遊戲。
>
> **失敗範例**
>
> 1. 遊戲立即將內容切換為以設定檔 B 作為作用中的使用者。

<br />

**115-02 移除控制器**

> **測試步驟**
>
> 1. 登入設定檔並啟動遊戲。
> 2. 在使用遊戲期間的各個時間點，取出控制器的電池。
> 3. 將電池裝回控制器，並確認使用者可以繼續使用遊戲。
> 4. 重複步驟 \[1] - \[3]，但改為連接第二個控制器，而不是裝回電池。
>
> **預期結果**<br />遊戲必須正確回應控制器的移除和新增。
>
> **通過範例**
>
> 1. 移除或新增控制器之後，作用中的使用者應能繼續使用遊戲。
> 2. 系統提示使用者重新建立新的作用中控制器 (例如「按 A 繼續」，或透過叫用系統 UX)。
>
> **失敗範例**
>
> 1. 移除控制器之後，使用者無法繼續使用遊戲。

<br />

**115-03 移除使用者**

> **測試步驟**
>
> 1. 登入設定檔 A，並確保沒有其他設定檔登入。
>
> 2. 啟動遊戲並進入遊戲過程。
>
> 3. 在使用遊戲期間的各個時間點，登出設定檔 A。
>
> 4. 確認遊戲叫用帳戶選擇器，或將使用者帶回前端。
>
> 5. 在可能的情況下，以下列方式與遊戲互動：
>
> * 登入設定檔 A，並確保遊戲不會進一步中斷使用者的體驗。
> * 登入設定檔 B，並確保遊戲更新為新使用者的內容。
>
> **預期結果**<br />遊戲必須將玩家從遊戲中移除，或重新建立使用者和作用中的控制器。如果將玩家從遊戲中移除，遊戲應保持在良好狀態。這包括寫入連線儲存體、通知任何相關的 MPSD 工作階段該使用者已離開，以及在尚未新增新使用者的情況下，將使用者帶到適當的位置進行登入。
>
> **通過範例**
>
> 1. 遊戲將玩家從遊戲中移除並返回前端。
> 2. 遊戲允許使用者重新建立新使用者，並正確更新為相關的使用者內容。
>
> **失敗範例**
>
> 1. 遊戲未對使用者狀態的變更做出反應。
> 2. 選取新設定檔後，遊戲仍繼續使用設定檔 A 的使用者狀態。


## Related topics

- [XR115 在遊戲過程中新增和移除使用者或控制器](/zh-TW/publishing/certification/fma/xr-115.md)
- [XBOX 遊戲的 XBOX 需求](/zh-TW/publishing/certification/xbox-requirements.md)
- [XBOX 主機遊戲的認證測試 XBOX 需求](/zh-TW/publishing/certification/console-cert-tested-requirements.md)
- [XBOX 需求與原則支援內容](/zh-TW/publishing/certification/xr/overview.md)
- [XR-112 在初始啟用和繼續時建立使用者與控制器](/zh-TW/publishing/certification/xr/xr-112.md)
