Defold プロジェクトのセットアップ
OS: このガイドは Windows 10 向けに書かれています。Mac でも問題なく動作します。- アカウントを作成して Defold をダウンロードするか、https://www.defold.com/ (Google O-Auth を使用) でログインします: https://d.defold.com/stable/。
- Defold の「Getting Started Tutorial」を完了していない場合は、今すぐ実施してください。
- 以下に示すように、Defold ダッシュボードで新しいプロジェクトを作成します。
- 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 リファレンス のドキュメントを参照してください。 Happy coding!コードの詳細解説
-
PfGettingStarted.guiPfGettingStarted.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 を使用する各ゲーム エンジンは独自の実装を提供します。これら 2 つの変数は、PlayFabSdk に HTTPS へのアクセス方法を伝えます。これはプロジェクト内で最初のシーンで一度だけ行う必要があります。それ以外は必要なボイラープレートです。
-
PlayFabClientApi.settings.titleId = "144"- PlayFab を使用するすべてのプロジェクトは、Game Manager と呼ばれる PlayFab の Web サイトで一意のタイトルを作成する必要があります。Game Manager で
titleIdを見つけ、144をご自身のtitleIdに置き換えてください。
- PlayFab を使用するすべてのプロジェクトは、Game Manager と呼ばれる PlayFab の Web サイトで一意のタイトルを作成する必要があります。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 ステートメントとセットアップ。
