初始化順序
初始化有四個步驟。第一個步驟是選擇性的,其餘三個步驟是必要的。步驟 1:設定自訂記憶體攔截 (選擇性)
如果您的遊戲使用自訂記憶體配置器,請在任何其他 PlayFab API 之前呼叫 PFMemSetFunctions。這會將所有 SDK 記憶體配置路由至您自己的alloc 和 free 回呼。
PFMemSetFunctions 必須在 PFInitialize 之前呼叫。設定攔截之後,就無法再次呼叫它。
步驟 2:初始化 PlayFab Core
PFInitialize 會設定 SDK 的全域狀態,包括 HTTP 層和背景工作佇列。確切的簽章會因平台而異。Windows、Linux、iOS 和 macOS
nullptr 以使用預設的執行緒集區佇列。
Android
在 Android 上,您還必須提供 Java VM 和應用程式內容,SDK 才能初始化 libHttpClient:如果您未明確呼叫 PFInitialize,PFServicesInitialize 會使用預設參數在內部呼叫它。這對大多數遊戲來說沒有問題。不過,如果您透過 PFMemSetFunctions 使用自訂記憶體攔截,就必須自行呼叫 PFInitialize;否則 PFServicesInitialize 會在記憶體攔截生效之前初始化 Core,而 SDK 會改用預設的配置常式。
步驟 3:建立服務設定
PFServiceConfigCreateHandle 會建立一個控制代碼,告知 SDK 要以哪個 PlayFab 遊戲和端點為目標。您可以在 Game Manager 中找到這兩個值。步驟 4:初始化 PlayFab Services
PFServicesInitialize 會在 Core 之上設定 Services 層 (Inventory、Leaderboards、Friends 等)。Windows、Linux、iOS 和 macOS
nullptr。
Android
在 Android 上,傳遞包含 Java VM 和應用程式內容的 HCInitArgs 結構:PFServiceConfigHandle 生命週期
PFServiceConfigHandle 是參考計數的控制代碼。SDK 會透過參考計數管理其內部存留期,但您必須負責關閉您擁有的每個控制代碼。複製控制代碼
當您需要在各自管理存留期的元件之間共用服務設定時,請使用 PFServiceConfigDuplicateHandle:關閉順序
關閉是初始化的反向順序。您必須先將 Services 取消初始化,再將 Core 取消初始化,而且這兩個呼叫都是非同步的。步驟 1:關閉所有開啟的控制代碼
在終止 SDK 之前,請關閉您擁有的每個 PFEntityHandle 和 PFServiceConfigHandle:步驟 2:將 Services 取消初始化
PFServicesUninitializeAsync 會終止 Services 層。請等候它完成後再繼續。步驟 3:將 Core 取消初始化
Services 清除完成後,請呼叫 PFUninitializeAsync 以終止 Core:如果您未明確呼叫 PFInitialize,可以略過 PFUninitializeAsync。在此情況下,PFServicesUninitializeAsync 會自動處理 Core 的清除。不過,如果您確實自行呼叫了 PFInitialize,就必須自行呼叫 PFUninitializeAsync。
