跳轉到主要內容
本指南可協助您從較舊的 PlayFab v1 SDK 移轉至新的 PlayFab Unified SDK v2。Unified SDK 將先前分開的 SDK (Core、Services、Party、Multiplayer) 整合成單一的整合式解決方案,並改善了互通性和簡化了驗證。

變更概觀

PlayFab Unified SDK v2 引進了數項重要改進:
  • 統一架構:所有 PlayFab 服務 (Core、Services、Party、Multiplayer、GameSave) 都整合至單一 SDK 中
  • 簡化驗證:只需登入一次,即可透過實體控制代碼存取所有 PlayFab 服務
  • 自動權杖管理:不再需要手動重新整理權杖或管理實體識別碼
  • 改善互通性:不同 PlayFab 服務之間的順暢通訊
  • 簡化專案結構:單一 SDK 安裝,而非多個個別套件

專案結構變更

適用於 GDK 使用者

舊版配置 (GDK 2504 及更早版本):
  • 每個 SDK 元件都有個別的延伸模組
  • 個別的 include 和程式庫資料夾:PlayFab.Services.Cpp、PlayFab.Party.Cpp、PlayFab.Multiplayer.Cpp
  • 每個服務在 GDK 中都有不同的 ExtensionLibrary 名稱
  • 不同的 PlayFab 服務需要從 GitHub 進行多次下載
新配置 (GDK 2510 及更新版本):
  • 單一統一的 PlayFab SDK
  • 依平台組織的結構,包含子資料夾 (xbox、windows 等)
  • 所有標頭都整合在一個 includes 資料夾中 (Core、Services、Multiplayer、Party、GameSave)
  • 統一 lib 資料夾中的合併程式庫

更新您的專案參考

在過渡期間 (GDK 2510),舊版和新版 SDK 會並存。若要移轉:
  1. 移除舊參考:刪除對 PlayFab.Services.Cpp、PlayFab.Party.Cpp 和其他個別 SDK 延伸模組的參考
  2. 新增統一參考:參考新的 PlayFab Unified SDK,或將 include/程式庫路徑更新為統一位置
  3. 為未來做規劃:Microsoft 將在未來的 GDK 版本中移除舊資料夾 (可能在 2026 年之前),因此請據此更新專案檔案

適用於 GitHub/獨立使用者

  • 以單一 Unified SDK 套件取代多次 SDK 下載
  • 更新專案路徑以使用新的依平台組織的資料夾結構

驗證和實體處理

這兩個版本中都有實體和實體權杖的概念,但在 v2 中使用它們的方式已經簡化。

權杖管理變更

PlayFab 獨立 SDK (v1) 方法:
  • 使用 PFAuthenticationGetEntityTokenAsync 手動擷取權杖
  • 權杖到期時手動重新整理權杖
  • 將實體識別碼和權杖字串傳遞至其他服務 (例如 partyManager.CreateLocalUser(entityId, titlePlayerEntityToken, &localUser))
PlayFab Unified SDK (v2) 方法:
  • 由 Core SDK 自動管理權杖
  • 在到期前於背景重新整理權杖
  • 直接將 PFEntityHandle 傳遞至其他服務 (例如 partyManager.CreateLocalUser(entityHandle, &localUser))

驗證的移轉步驟

  1. 移除手動權杖管理:刪除手動擷取或檢查 PlayFab 權杖的程式碼
  2. 儲存實體控制代碼:保留登入時取得的 PFEntityHandle,並在所有 PlayFab 服務中使用
  3. 更新服務呼叫:以實體控制代碼取代實體識別碼/權杖參數
  4. 處理重新驗證:在重新驗證案例中使用 PFAuthenticationReLogin*Async API

各元件的中斷性 API 變更

PlayFab Core

移轉影響:需要的變更極少
  • 大多數 Core 服務呼叫維持不變
  • 更新 include 路徑以指向 Unified SDK 標頭

PlayFab Services

移轉影響:需要的變更極少
  • 大多數 Service 呼叫維持不變
  • 更新 include 路徑以指向 Unified SDK 標頭

PlayFab Party (網路/語音)

移轉影響:需要少量變更

初始化變更

v1 初始化:
v2 初始化:

本機使用者建立變更

v1 方法:
v2 方法:

Party 的移轉步驟

  1. 更新初始化:以設定結構方法取代簡單的 PartyManager::Initialize() 呼叫
  2. 移除權杖擷取:刪除任何為 Party 手動取得實體識別碼/權杖的程式碼
  3. 傳遞實體控制代碼:直接使用 PFEntityHandle,而非字串參數
  4. 移除權杖重新整理邏輯:刪除定期檢查或重新整理 Party 權杖的程式碼
  5. 更新相依性:確定在 PartyManager::Initialize() 之前已初始化 PlayFab Core
  6. 移除 XBOX 特定呼叫:在 XBOX 上以一般的 PartyInitialize() 取代 PartyXblManagerInitialize()

PlayFab Multiplayer (Lobby 與 Matchmaking)

移轉影響:需要少量變更 核心概念 (Lobby、配對 Ticket) 維持不變,但函式現在預期接收實體控制代碼,而非字串。

Lobby 作業變更

v1 方法:
v2 方法:

Multiplayer 的移轉步驟

  1. 更新函式呼叫:以 PFEntityHandle 取代 PlayFab 識別碼和實體權杖參數
  2. 移除驗證步驟:刪除個別的「驗證 Multiplayer」呼叫
  3. 明確初始化:呼叫 PFMultiplayerInitialize(),並視需要呼叫 PFMultiplayerStartProcessing()
  4. 更新配對:在建立配對票證時使用實體控制代碼

一般移轉檢查清單

程式碼更新

  • 更新 include 路徑:指向 Unified SDK include 目錄
  • 更新程式庫連結:連結統一程式庫,而非個別程式庫
  • 移除已淘汰的函式:刪除對已移除函式 (例如 PartyManager::CreateLocalUserWithEntityType) 的呼叫
  • 取代手動權杖管理:移除權杖快取和重新整理邏輯
  • 更新初始化順序:確定 PlayFab Core 在其他服務之前初始化

測試檢查清單

移轉之後,請驗證每個子系統:
  • 驗證:登入會傳回有效的實體控制代碼
  • Lobby 作業:建立/加入大廳正常運作
  • Party 網路:玩家可以跨電腦連線和通訊
  • 錯誤處理:所有 PlayFab 呼叫都能適當地處理錯誤
  • 多使用者案例:如果適用,多個本機使用者都能正常運作

常見問題和解決方案

關於缺少參數的編譯器錯誤:
  • 檢查函式簽章是否已變更為需要 PFEntityHandle
  • 確定您傳遞的是實體控制代碼,而非字串識別碼
執行階段驗證失敗:
  • 確認 PlayFab Core 在其他服務之前初始化
  • 檢查登入是否在 Party/Multiplayer 中建立本機使用者之前完成
效能衰退:
  • 很少見,但請確認 v2 不會在效能關鍵的程式碼路徑中造成問題

移轉的優點

簡化程式碼

  • 降低複雜度:移除因應 v1 服務分離的因應措施程式碼
  • 統一錯誤處理:所有 PlayFab 服務都使用一致的錯誤回報
  • 集中式驗證:所有 PlayFab 功能使用同一個登入流程

改善互通性

  • 順暢整合:新增 PlayFab 功能只需極少的設定
  • 更好的多使用者支援:Unified SDK 能更有效地處理多個本機使用者
  • 一致的實體模型:所有服務使用相同的驗證方法

面向未來

  • 持續開發:v2 是持續維護的版本
  • 新功能:未來的 PlayFab 功能將以 Unified SDK 為目標
  • 長期支援:v1 SDK 最終將會淘汰

後續步驟

  1. 更新專案結構:移轉至 Unified SDK 配置
  2. 重構驗證:實作以實體控制代碼為基礎的方法
  3. 徹底測試:驗證所有 PlayFab 功能都能正常運作
  4. 清除程式碼:移除已淘汰的 v1 因應措施和手動權杖管理
  5. 監視效能:確保移轉不會造成效能問題
如需其他協助,請參閱適用於您特定平台的 PlayFab Unified SDK 文件和範例。
最後修改於 2026年10月8日