Defold 專案設定
作業系統:本指南是針對 Windows 10 撰寫的。它在 Mac 上應該也能正常運作。- 建立帳戶並下載 Defold,或在 https://www.defold.com/ 登入 (使用 Google O-Auth):https://d.defold.com/stable/。
- 如果您尚未完成 Defold 的「Getting Started Tutorial」,現在應該先完成。
- 在 Defold Dashboard 上建立新專案,如下所示。

- 執行 Defold,然後載入您的新專案。您應該會看到數個類似下方範例的視窗。

- 更新專案設定,並將 PlayFab 加入相依性中: https://github.com/PlayFab/LuaSdk/raw/master/Defold/PlayFabClientSdk.zip

- 選取:Project -> Fetch Libraries,您應該會看到新的內建 PlayFab 資料夾,如下所示。

-
建立幾個檔案:
- main/PfGettingStarted.gui
- 選取「main」資料夾 -> new -> Gui File -> PfGettingStarted.gui。
- main/PfGettingStarted.gui_script
- 選取「main」資料夾 -> new -> Gui Script File -> PfGettingStarted.gui_script。
-
在 main.collection 中連結我們新的 GUI。
- 選取 main.collection 以將其開啟。
-
在 Outline 面板中:
- 選取 Add Game Object (可選擇將其重新命名為 PfGui)。
- 選取新物件,然後選取 Add Component From File…
- PfGettingStarted.gui (於上方建立)。
- 選取新物件,然後選取 Add Component From File…
- 選取 Add Game Object (可選擇將其重新命名為 PfGui)。
-
檢視 main.collection 的 Outline 面板應該會類似下方所示的範例。

設定您的第一次 API 呼叫
本指南將提供進行第一次 PlayFab API 呼叫所需的最少步驟。您可以在遊戲視窗中看到確認訊息。- 在 Defold 編輯器中,按兩下 PfGettingStarted.gui_script。
- 這應該會開啟檔案以進行文字編輯。
- 更新 PfGettingStarted.gui_script 的內容,如下所示。
若要查閱此範例中 loginRequest 物件的正確格式,請參閱 LoginWithCustomID 的 API 參考。
-
在 Defold 編輯器中,以滑鼠右鍵按一下 PfGettingStarted.gui -> Open With -> Text Editor。遺憾的是,這會變更 Defold 中的內部設定,因此:
- 再次開啟它:以滑鼠右鍵按一下 PfGettingStarted.gui -> Open With -> GUI Editor。這會將預設值重設回正常狀態。
- 選取 PfGettingStarted.gui 的文字編輯索引標籤。
- 更新 PfGettingStarted.gui 的文字內容,如下所示。
完成並執行
首先,請確定所有內容都已儲存,然後選取另一個索引標籤。接著尋找「 * 」標記 - 有時 Defold 不會重新整理。 然後,建置您的遊戲 (Ctrl+b 或下拉式功能表:Project -> Build and Launch)。您應該會在畫面上看到下列文字: “Congratulations, you made your first successful API call!” 如需所有可用用戶端 API 呼叫的清單,請參閱我們的 PlayFab API 參考文件。 祝您程式撰寫愉快!解構程式碼
-
PfGettingStarted.gui- 我們對
PfGettingStarted.gui的指示是為了方便起見,而非教學。此檔案是 GUI 定義,它會在畫面上新增文字方塊,並將其繫結至我們的另一個指令碼:PfGettingStarted.gui_script。您通常「不會」以文字形式編輯這些檔案。 - 如需有關如何建置 Defold GUI 小工具的正確指示,請閱讀本指南:
- Defold 中的 GUI 場景
- 我們對
-
PfGettingStarted.gui_script-
Require 陳述式和設定。
PlayFabClientApi可讓您進行 Client API 呼叫 - 這就是您來到這裡的原因。- IPlayFabHttps 和 PlayFabHttps_Defold:
- PlayFab Defold 外掛程式是以 PlayFab LuaSdk 為基礎建置的。Lua 語言沒有適當的 HTTPS 模組。每個使用 Lua 的遊戲引擎都會實作自己的模組。這兩個變數會告訴 PlayFabSdk 如何存取 HTTPS。您只需要在專案的第一個場景中執行一次此動作。除此之外,這是必要的重複使用程式碼
-
PlayFabClientApi.settings.titleId = "144"- 每個使用 PlayFab 的專案都應該在 PlayFab 網站 (我們稱之為 Game Manager) 中建立唯一的遊戲。在 Game Manager 中找到您的
titleId,並將144取代為您的titleId。
- 每個使用 PlayFab 的專案都應該在 PlayFab 網站 (我們稱之為 Game Manager) 中建立唯一的遊戲。在 Game Manager 中找到您的
-
function init(self)- Defold 函式 - 在 GUI 初始化時呼叫。
-
local loginRequest = { TitleId = PlayFabClientApi.settings.titleId, CustomId = "GettingStartedGuide", CreateAccount = true }- 大多數 PlayFab API 方法都需要輸入參數,而這些輸入參數會封裝在要求物件中
- 每個 API 方法都需要唯一的要求物件,其中包含選擇性和必要參數的組合
- 對於
LoginWithCustomIDRequest,有一個必要參數CustomId可唯一識別玩家,還有CreateAccount允許透過此呼叫建立新帳戶。
- 對於
- 對於登入,大多數開發人員會想要使用更合適的登入方法
- 如需所有登入方法和輸入參數的清單,請參閱 PlayFab 登入文件。常見的選擇包括:
-
PlayFabClientApi.LoginWithCustomID(loginRequest, OnLoginSuccess, OnLoginFailed)- 這會使用要求執行 API 呼叫,並提供成功和失敗情況的回呼函式。
-
function OnLoginSuccess(result)- 許多 API 成功回呼的 result 物件會包含所要求的資訊。
LoginResult包含玩家的一些基本資訊,但對大多數使用者而言,登入只是呼叫其他 API 之前的必要步驟。
-
function OnLoginFailed(error)- API 呼叫可能因許多原因而失敗,您應該一律嘗試處理失敗情況。
-
API 呼叫失敗的原因 (依可能性排序)
- 未設定 PlayFabSettings.TitleId。如果您忘記將 titleId 設定為您的遊戲,則一切都無法運作。
-
要求參數。如果您沒有為特定 API 呼叫提供正確或必要的資訊,呼叫就會失敗。如需詳細資訊,請參閱
error.errorMessage、error.errorDetails或error.GenerateErrorReport()。 - 裝置連線問題。行動電話會不斷失去/恢復連線,因此任何 API 呼叫都可能隨時隨機失敗,然後又立即恢復正常。進入隧道可能會讓您完全中斷連線。
- PlayFab 伺服器問題。就像所有軟體一樣,可能會發生問題。如需更新資訊,請參閱我們的版本資訊。
- 網際網路並非 100% 可靠。有時訊息會損毀或無法送達 PlayFab 伺服器。
- 如果您在偵錯問題時遇到困難,而錯誤資訊中的內容又不足夠,請造訪我們的論壇
-
local pfTestOutput = gui.get_node("pfOutput")- 這是另一個 Defold GUI 函式。它會擷取在 PfGettingStarted.gui 檔案中定義的
pfOutputGUI 物件,並指派要向使用者顯示的文字。
- 這是另一個 Defold GUI 函式。它會擷取在 PfGettingStarted.gui 檔案中定義的
-
Require 陳述式和設定。
