> ## 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-112 在初始啟用和繼續時建立使用者與控制器

> 遊戲必須建立一或多位作用中的使用者，作為遊戲中的主要使用者，並在從暫停、睡眠或休眠繼續時處理這些使用者。

版本 2.0，11/1/2025

遊戲必須建立一或多位作用中的使用者，作為遊戲中的主要使用者，並在從暫停、睡眠或休眠繼續時處理這些使用者。在 GDK 中，遊戲可使用簡化或進階使用者模型來達成此目的。

**GDK 簡化使用者模型遊戲**

GDK 中的簡化使用者模型會代表遊戲處理預設使用者的取得。遊戲仍須負責確保已為使用者指派控制器，並使用該控制器進行遊戲輸入。如果未為預設使用者指派控制器，遊戲應使用 XUserFindControllerForUserWithUiAsync 叫用系統對話方塊來選取控制器，並開始接受玩家的輸入。

**GDK 進階使用者模型**

在初始啟用時，遊戲可以根據其遊戲設計和偏好來決定初始使用者，方法是使用啟動遊戲的使用者，或明確提示選擇使用者。

遊戲必須在對使用者設定檔採取第一個與設定檔相關的動作 (例如儲存進度或設定) 之前，指出作用中的使用者。

所有使用進階使用者模型的 Microsoft Game Development Kit (GDK) 遊戲，都必須提供帳戶選擇器的進入點，以變更作用中的使用者。

當遊戲從暫停、睡眠或休眠繼續時，遊戲必須驗證使用者/控制器配對，並據此做出反應，繼續先前使用者的工作階段，或取得一或多位新使用者。

## 其他資訊

**在初始啟用期間建立使用者**

*GDK 簡化使用者模型*

初始使用者是透過呼叫 XUserAddAsync(silent) 提供給遊戲，且一律會針對啟動的使用者傳回單一結果。

*GDK 進階使用者模型、ERA 及 UWP 多使用者應用程式*

*如果遊戲使用啟動遊戲的使用者：*

* 對於 GDK，可以呼叫 XUserAddAsync(silent) 來判斷作用中的使用者。如果系統傳回沒有預設使用者，遊戲必須使用不含 silent 選項的 XUserAddAsync 提示選擇使用者。這會為使用者顯示帳戶選擇器。

* 對於 ERA 和 UWP，可以從應用程式啟用內容的建議使用者 (CoreApplicationContext.CurrentUser) 找到作用中的使用者。如果應用程式啟用內容未提供建議使用者，而遊戲採取與設定檔相關的動作，遊戲必須啟動帳戶選擇器，並根據使用者選取的設定檔設定作用中的使用者。

*如果提示選擇使用者：*

* 遊戲顯示互動提示，且必須顯示帳戶選擇器。使用者取決於所做的選取。

* 對於 GDK，帳戶選擇器是使用 **XUserAddAsync** 叫用

* 對於 ERA 和 UWP，帳戶選擇器是使用 **ShowAccountPickerAsync** 叫用。

如果使用者選擇取消登入，遊戲必須通知使用者，如果繼續，其進度將不會儲存。

選擇使用者或從啟動識別出使用者之後，遊戲會在採取任何與設定檔相關的動作之前顯示玩家代號。對於遊戲如何或在何處顯示作用中的使用者，沒有任何需求。最佳做法包括在應用程式的主畫面或遊戲的標題功能表上，顯示使用者的玩家圖示和顯示名稱。

**在初始啟用期間建立控制器**

當遊戲以已登入的使用者啟動時，遊戲必須遵守帳戶選擇器或平台所設定的控制器與使用者繫結。只要在遊戲過程中或遊戲過程外於帳戶選擇器中選取玩家，XBOX 平台就會將控制器繫結至該玩家。

如果遊戲使用啟動遊戲的使用者，遊戲應使用指派給該使用者的相關聯遊戲控制器來驅動遊戲過程和互動。

**從暫停或受限模式繼續**

*GDK 簡化使用者模型*

XBOX 平台會確保最初啟動遊戲的使用者仍處於登入狀態。遊戲可以透過 UDA 註冊變更通知；如果發生變更，則使用新繫結的控制器來驅動遊戲過程。

從暫停或受限狀態繼續時，遊戲過程中的任何其他使用者，都需要依照進階使用者模型中的下列指引進行相應處理。

*GDK 進階使用者模型、ERA 及 UWP 多使用者應用程式*

當遊戲從暫停繼續或結束受限模式時，遊戲必須驗證使用者/控制器配對，並據此做出反應：

* 如果使用者/控制器配對沒有變更，則遊戲必須繼續進行。
* 在 ERA 或 UWP 中，如果遊戲先前作用中的使用者仍處於登入狀態，但位於新的 User 物件上 (通常是因為使用者在遊戲暫停時登出後又重新登入所造成)，則遊戲必須使用新的已登入 User 物件來取代已登出的 User 物件。使用方式必須如同使用者從未登出一樣繼續進行。
* 如果所有預期的使用者都與有效但不同的控制器配對，則遊戲必須更新並使用新的系統控制器配對。
* 如果預期的使用者沒有任何有效的控制器，則遊戲必須使用帳戶選擇器為使用者建立作用中的控制器。
* 如果預期的玩家未登入，遊戲必須將該玩家從遊戲中移除，或重新建立使用者和作用中的控制器。遊戲通常會透過顯示帳戶選擇器來達成此目的。如果在重新建立使用者的過程中選擇了新使用者，且遊戲狀態是依使用者儲存，遊戲就必須在遊戲過程中使用該新使用者的狀態。

## 其他資源

如需使用 GDK 處理玩家身分識別的相關資訊，請參閱[使用者章節](/zh-TW/build/core-features/common/user/user-toc)

## 認證測試案例

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

| 測試案例 | 適用於 GDK 簡化使用者模型 | 適用於 GDK 進階使用者模型、ERA 及 UWP MUA |
| - | - | - |
| 112-02 初始使用者與控制器 | 否 | 是 |
| 112-03 沒有已登入的使用者 | 否 | 是 |
| 112-04 作用中使用者指示 | 是 | 是 |
| 112-05 存取帳戶選擇器 | 否 | 是 |
| 112-06 處理設定檔變更 | 否 | 是 |
| 112-07 受限模式期間的使用者變更 | 否 | 是 |
| 112-08 暫停期間的使用者變更 | 否 | 是 |

### 112-02 初始使用者與控制器

**測試步驟**

1. 登入設定檔 A 並啟動遊戲。
2. 確認作用中的使用者可以控制遊戲。
3. 在沒有已登入設定檔的情況下重複步驟 \[1]，並確認遊戲提示建立作用中的使用者。
4. 建立作用中的使用者，並確認該使用者可以控制遊戲。

**預期結果**<br />遊戲必須將作用中的使用者設定為啟動遊戲的控制器/使用者配對，或顯示互動提示以識別控制器和使用者，或顯示帳戶選擇器以進行登入。

**通過範例**

1. 遊戲將作用中的使用者設定為啟動遊戲的控制器/使用者配對。
2. 遊戲顯示互動提示以識別控制器和使用者。
3. 遊戲顯示帳戶選擇器以進行登入。

**失敗範例**

1. 遊戲不允許使用者以第一個使用的控制器控制遊戲。
2. 在沒有使用者登入的情況下啟動時，遊戲未提示使用者建立作用中的使用者。

### 112-03 沒有已登入的使用者

**測試步驟**

1. 確認沒有任何使用者登入。
2. 啟動遊戲，並進入每個支援儲存使用者資料的模式。
3. 驗證每個模式都會在發生任何資料遺失之前，提供使用者登入的機會。
4. 取消登入的機會，並確認遊戲提供警告，指出進度將不會儲存。

**預期結果**<br />如果遊戲處於通常會儲存使用者資料或遊戲狀態的模式，遊戲必須提供使用者登入的機會。如果使用者未登入就繼續遊戲過程，遊戲必須通知使用者其進度將不會儲存

**通過範例**

1. 未登入的使用者在存取通常會儲存使用者資料或遊戲狀態的遊戲模式時，會收到登入提示。
2. 系統通知使用者，如果在未登入的情況下繼續該模式，進度將不會儲存。

**失敗範例**

1. 在通常會儲存使用者資料或遊戲狀態的模式中，未通知使用者如果在未登入的情況下繼續該模式，進度將不會儲存。
2. 在資料遺失已經發生之後，才通知使用者將無法儲存其進度。

### 112-04 作用中使用者指示

**測試步驟**

1. 登入一個先前未曾看過該遊戲且沒有相關聯存檔資料的設定檔。
2. 啟動遊戲。
3. 確認遊戲在執行任何與設定檔相關的動作之前，於 UI 中識別作用中的使用者。「與設定檔相關的動作」的範例包括變更使用者的已儲存遊戲或喜好設定、將資料儲存至使用者的設定檔、授予成就、為使用者寫入統計資料，或任何其他本機或雲端對使用者資料或狀態的使用或操作。
4. 建立存檔。
5. 重新啟動遊戲，並確認遊戲在執行任何與設定檔相關的動作之前，於 UI 中識別作用中的使用者。
6. 中斷與 XBOX Live 的連線。
7. 重新啟動遊戲，並確認遊戲在執行任何與設定檔相關的動作之前，於 UI 中識別作用中的使用者。

**預期結果**<br />遊戲必須在第一個與設定檔相關的動作之前，指出目前的使用者內容。

**通過範例**

1. 遊戲在執行任何與設定檔相關的動作之前，於遊戲中顯示使用者的玩家代號和/或玩家圖示。
2. 不使用使用者設定檔的遊戲不會指出作用中的使用者。
3. 對於支援多位使用者的遊戲模式，遊戲會顯示多位作用中的使用者。

**失敗範例**

1. 遊戲在執行與設定檔相關的動作之前，未指出遊戲作用中的使用者。

### 112-05 存取帳戶選擇器

**測試步驟**

1. 登入設定檔並啟動遊戲。
2. 確認遊戲允許作用中的使用者在遊戲中存取帳戶選擇器，並選取不同的設定檔。

**預期結果**<br />遊戲必須允許使用者在遊戲中存取帳戶選擇器，以變更作用中的使用者。

**通過範例**

1. 遊戲允許使用者在遊戲中存取帳戶選擇器。

**失敗範例**

1. 遊戲不允許使用者在遊戲中存取帳戶選擇器。

### 112-06 處理設定檔變更

**測試步驟**

1. 登入設定檔並啟動遊戲。
2. 存取帳戶選擇器並選取不同的設定檔。
3. 確認遊戲做出適當反應，並將作用中使用者的內容切換至新的設定檔。
4. 針對遊戲中每個可存取帳戶選擇器的位置，重複步驟 1-4。

**預期結果**<br />遊戲必須允許使用者順暢地切換至另一位使用者的內容。

**通過範例**

1. 遊戲通知使用者，變更作用中的使用者可能導致資料遺失，並在進入帳戶選擇器之前提示使用者確認。
2. 遊戲適當地更新為新作用中使用者的內容。

**失敗範例**

1. 遊戲未適當地更新為新作用中使用者的內容。

### 112-07 受限模式期間的使用者變更

**測試步驟**

1. 登入設定檔 A 並啟動遊戲。
2. 在遊戲中的各個位置按下 XBOX button，使遊戲進入受限狀態。
3. 遊戲處於受限狀態時，登出設定檔 A 並登入設定檔 B。
4. 繼續遊戲。
5. 確認遊戲針對新的作用中使用者做出相應的反應。

**預期結果**
當遊戲從受限模式繼續時，遊戲必須確認先前參與的所有使用者是否仍登入主機

**通過範例**

1. 應用程式在繼續時，自動將作用中使用者內容切換至設定檔 B。
2. 遊戲自動將設定檔 A 從遊戲中移除，或重新建立新使用者，並在遊戲過程中使用該新使用者的狀態。

**失敗範例**

1. 遊戲未更新以將設定檔 A 從作用中使用者的內容中移除。
2. 選取新設定檔後，遊戲仍繼續在遊戲過程中使用設定檔 A 的狀態。

### 112-08 暫停期間的使用者變更

在零售版主機上，遊戲會在下列情況下暫停：

* 當電源模式設為「立即開機」時關閉主機，使主機進入連線待命狀態。
* 當遊戲失去焦點達十分鐘時。例如，啟動「設定」等應用程式並讓其保持焦點十分鐘。

就此測試案例而言，應在步驟 2 驗證這兩種方法。

**測試步驟**

1. 登入 XBOX 設定檔並啟動遊戲。
2. 在整個遊戲中的各個位置暫停遊戲。
3. 遊戲暫停時，登出設定檔 A 並登入設定檔 B。
4. 繼續遊戲，並確認遊戲針對新的作用中使用者做出相應的反應。
5. 以新的作用中使用者進入遊戲過程，並確認該使用者能夠取得進度。

**預期結果**

1. 當遊戲從暫停繼續時，遊戲必須確認先前參與的所有使用者是否仍登入主機。

**通過範例**

1. 遊戲在繼續時，自動將作用中使用者內容切換至設定檔 B。
2. 遊戲自動將設定檔 A 從遊戲中移除，或重新建立新使用者，並在遊戲過程中使用該新使用者的狀態。

**失敗範例**

1. 遊戲未更新以將設定檔 A 從作用中使用者的內容中移除。
2. 選取新設定檔後，遊戲仍繼續在遊戲過程中使用設定檔 A 的狀態。


## Related topics

- [XR112 在初次啟用與繼續時建立使用者和控制器](/zh-TW/publishing/certification/fma/xr-112.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-115 遊戲過程中新增和移除使用者或控制器](/zh-TW/publishing/certification/xr/xr-115.md)
