クイックスタート: プレイヤー データを設定して取得する
注意
PlayFab API では、機能名に UserData という用語を使用します。 ゲーム マネージャー では、この概念が [プレイヤー データ] として説明されています。 それらは同じで、言い換え可能です。
PlayFab プレイヤー データの使用を開始します。 このクイックスタートでは、Unity で C# を使い、PlayFab CloudScript を使用してプレイヤー データを設定し、取得する方法をご紹介します。
プレイヤー データは、個人のプレイヤーかプレイヤー グループ (共有データ) に適用された情報で、PlayFab によって Key/Value Pairs (KVPs) に格納されます。 この記事では、任意のプロセスまたはコンテキストから安全に呼び出すことができるクライアント API 呼び出しについて説明します。 また、サーバー API の呼び出しについても説明しています。自分が管理する専用のサーバー プロセスか、慎重にセキュリティで保護された CloudScript 呼び出しによって のみ 実行されます。 サーバー API にはデベロッパー シークレット キーが必要です。このキーは、クライアントへの提供や公開ができません。
この記事でご紹介する C# サンプルは、Unity SDK 用に記述されています。 Unity SDK では、イベント駆動モデルを使用して非同期のタスクを処理します。 標準の C# または Xamarin C# SDK でサンプル コードを実行するには、非同期タスク モデルを使用するようにコードを変更する必要があります。 修正が必要なメソッドは、署名のメソッド名に非同期が付加されています。 たとえば、Unity SDK の SetObject は、標準 C# SDK では SetObjectAsync になります。 詳細については、「MSDN ガイド - async と await を使った非同期プログラミング」を参照してください。
要件
- PlayFab 開発者アカウント。
- インストール済みの Unity エディターのコピー。 Unity Hub を介して個人的に使用するために Unity をインストールする、または業務用に Unity+ をインストールするには、「Unity のダウンロード」を参照してください。
注意
PlayFab Unity3D SDK は、Unity エディター バージョン 5.3 (2015 年 12 月リリース) 以降に対応しています。
- Unity プロジェクト – これは次のいずれかになります。
- 最新プロジェクト。 詳細については、「Unity を初めて起動する」を参照してください。
- ガイド付きチュートリアル プロジェクト。 詳細については、「Unity の使用を開始する」を参照してください。
- 既存のプロジェクト。
- PlayFab Unity3D SDK。
PlayFab Unity3D SDK のセットアップの詳細については、記事「クイックスタート: Unity の C# 用の PlayFab クライアント ライブラリ」を参照してください。これにより、PlayFab アカウントがあり、Unity3D SDK を構成していることを確認できます。
コード例について
この記事でご紹介する C# サンプルは、Unity SDK 用に記述されています。 Unity SDK では、イベント駆動モデルを使用して非同期のタスクを処理します。 標準の C# または Xamarin C# SDK でサンプル コードを実行するには、非同期タスク モデルを使用するようにコードを変更する必要があります。 修正が必要なメソッドは、署名のメソッド名に非同期が付加されています。 たとえば、Unity SDK の SetObject は、標準 C# SDK では SetObjectAsync になります。 詳細については、「MSDN ガイド - async と await を使った非同期プログラミング」を参照してください。
使用中の既存の Unity プロジェクトを使用することもできますが、このクイックスタートの手順では、「クイックスタート: Unity の C# 用の PlayFab クライアント ライブラリ」を完了したときに作成されたサンプルを使用することを前提としています。
ゲーム マネージャーのプレイヤー データ
次の手順を実行して、ゲーム マネージャーを通じて、常にプレイヤー データを取得し、設定できます。
- ゲーム マネージャー を開きます。 この機能に慣れていない場合は、「ゲーム マネージャーのクイックスタート」をご覧ください。
- [プレイヤー] タブを選択します。
- [プレイヤー] の名前を選択します。 [プレイヤー アカウント] タブに移動します。
- [プレイヤー データ] タブを選択し、データを表示します。
プレイヤー データを設定するメソッドと、プレイヤー データを取得するメソッドを追加する
Unity エディターで、サンプル プロジェクトを開きます。
[プロジェクト] ウィンドウで、[アセット]>> [スクリプト] の順に開き、PlayFabLogin スクリプトを開きます。
Visual Studio で、使用中の次のステートメントに以下を追加します。
using System.Collections.Generic;
プレイヤー データを設定するには、
PlayFabLogin
クラスにSetUserData
メソッドを追加します。SetUserData
UpdateUserData メソッドを使用して、ログインしているプレイヤーのプレイヤー データを作成または更新します。このメソッドは、値
Arthur
を持つ KVPAncestor
と、値Fred
を持つ KVPSuccessor
を作成します (あるいは、キー/値のペアがすでに存在する場合は更新します)。void SetUserData() { PlayFabClientAPI.UpdateUserData(new UpdateUserDataRequest() { Data = new Dictionary<string, string>() { {"Ancestor", "Arthur"}, {"Successor", "Fred"} } }, result => Debug.Log("Successfully updated user data"), error => { Debug.Log("Got error setting user data Ancestor to Arthur"); Debug.Log(error.GenerateErrorReport()); }); }
プレイヤー データを取得するには、
PlayFabLogin
クラスにGetUserData
メソッドを追加します。SetUserData
では、GetUserData メソッドを使用して、指定されたプレイヤーのプレイヤー データを取得します。void GetUserData(string myPlayFabId) { PlayFabClientAPI.GetUserData(new GetUserDataRequest() { PlayFabId = myPlayFabId, Keys = null }, result => { Debug.Log("Got user data:"); if (result.Data == null || !result.Data.ContainsKey("Ancestor")) Debug.Log("No Ancestor"); else Debug.Log("Ancestor: "+result.Data["Ancestor"].Value); }, (error) => { Debug.Log("Got error retrieving user data:"); Debug.Log(error.GenerateErrorReport()); }); }
SetUserData
メソッドでGetUserData
とOnLoginSuccess
に通話の追加を呼び出すには、以下の操作を行います。private void OnLoginSuccess(LoginResult result) { Debug.Log("Congratulations, you made your first successful API call!"); SetUserData(); GetUserData(result.PlayFabId); }
ファイルを保存します。
サンプルを実行します
Unity エディターで、再生ボタンを選択します。 成功した場合は、呼び出しの結果がコンソール ウィンドウに表示されます。