チュートリアル: プレーヤー プロフィールを取得
このチュートリアルで学習する内容は次のとおりです:
- ユーザーと表示名の作成
- プレイヤー プロフィールの呼び出しの作成
- プレイヤーの作成時刻と最終ログイン時刻の取得
- タイトルのプレイヤー プロフィール ビュー制限の設定
- ログイン操作を使用する、プレイヤー プロフィールの取得
要件
- PlayFab 開発者アカウント。
- インストール済みの Unity エディターのコピー。 Unity Hub を介して個人的に使用するために Unity をインストールする、または業務用に Unity+ をインストールするには、「Unity のダウンロード」を参照してください。
注意
PlayFab Unity3D SDK は、Unity エディター バージョン 5.3 (2015 年 12 月リリース) 以降に対応しています。
- Unity プロジェクト * これは次のいずれかになります。
- 最新プロジェクト。 詳細については、「Unity を初めて起動する」を参照してください。
- ガイド付きチュートリアル プロジェクト。 詳細については、「Unity の使用を開始する」を参照してください。
- 既存のプロジェクト。
- PlayFab Unity3D SDK。
このチュートリアルでは、タイトルのプレイヤーを作成するための基本的な知識が必要です。これにより、プレイヤーが GetPlayerProfile
を実行できます。
また、ゲーム マネージャーを初めて使用する場合は、プロフフィールの制約を設定するために、ゲーム マネージャーのクイックスタートを読むことをお勧めします。
この記事でご紹介する C# サンプルは、Unity SDK 用に記述されています。 Unity SDK では、イベント駆動モデルを使用して非同期のタスクを処理します。 標準の C# または Xamarin C# SDK でサンプル コードを実行するには、非同期タスク モデルを使用するようにコードを変更する必要があります。 修正が必要なメソッドは、署名のメソッド名に非同期が付加されています。 たとえば、Unity SDK の SetObject は、標準 C# SDK では SetObjectAsync になります。 詳細については、「MSDN ガイド - async と await を使った非同期プログラミング」を参照してください。
ユーザーと表示名の作成
最初にプレイヤーを作成し、ユーザーに表示名を追加します。 この例では、UnicornTossMaster
という表示名の新しいユーザーを作成します。
void CreatePlayerAndUpdateDisplayName() {
PlayFabClientAPI.LoginWithCustomID( new LoginWithCustomIDRequest {
CustomId = "PlayFabGetPlayerProfileCustomId",
CreateAccount = true
}, result => {
Debug.Log("Successfully logged in a player with PlayFabId: " + result.PlayFabId);
UpdateDisplayName();
}, error => Debug.LogError(error.GenerateErrorReport()));
}
void UpdateDisplayName() {
PlayFabClientAPI.UpdateUserTitleDisplayName( new UpdateUserTitleDisplayNameRequest {
DisplayName = "UnicornTossMaster"
}, result => {
Debug.Log("The player's display name is now: " + result.DisplayName);
}, error => Debug.LogError(error.GenerateErrorReport()));
}
コンソールの出力は、次のように表示されます。
Successfully logged in a player with PlayFabId: SOME_PLAYFAB_ID
The player's display name is now: UnicornTossMaster
プレイヤー プロフィールの呼び出しの作成
次の手順では、プレイヤーの基本的なプロファイルを作成します
次の例では、基本的な GetPlayerProfile の呼び出しを使用します。
void GetPlayerProfile(string playFabId) {
PlayFabClientAPI.GetPlayerProfile( new GetPlayerProfileRequest() {
PlayFabId = playFabId,
ProfileConstraints = new PlayerProfileViewConstraints() {
ShowDisplayName = true
}
},
result => Debug.Log("The player's DisplayName profile data is: " + result.PlayerProfile.DisplayName),
error => Debug.LogError(error.GenerateErrorReport()));
}
応答には、PlayerProfileModel オブジェクトが含まれており、プレイヤーの表示名 UnicornTossMaster
が含まれています。
プレイヤーの作成時刻と最終ログイン時刻の取得
PlayerProfileModel オブジェクトには、プレイヤーについての適切な量のデータがあります。 前の手順では、GetPlayerProfile
を発行し、受け取った応答には表示名の情報のみが含まれていました。
次の手順では、プレイヤーのプロフィール データを さらに 取得します。 これを行うには、PlayerProfileViewConstraints 要求パラメータで追加のフィールドのある GetPlayerProfile
を呼び出します。
次の C# の例では、手順2の GetPlayerProfile
メソッドを変更し、GetPlayerProfile
を呼び出して、ProfileConstraints のフラグを設定し、Created
フィールドと LastLogin
フィールドを要求します。
注意
この手順での呼び出しは失敗します。
void CreatePlayerAndUpdateDisplayName(string playFabId) {
PlayFabClientAPI.GetPlayerProfile( new GetPlayerProfileRequest() {
PlayFabId = playFabId,
ProfileConstraints = new PlayerProfileViewConstraints {
ShowDisplayName = true,
ShowCreated = true,
ShowLastLogin = true
}
},
result => Debug.Log("The player's profile Created date is: " + result.PlayerProfile.Created),
error => Debug.LogError(error.GenerateErrorReport()));
}
この時点でこのサンプル コードを実行すると、 Error Code 1303
でエラーが返されます。
RequestViewConstraintParamsNotAllowed
は、タイトルに現在設定されている制限内での JSON 出力の Invalid view constraints
で始まるエラー メッセージです。
タイトルのプロフィール制限の設定で、Created
と LastLogin
を表示する機能がまだ設定されていないため、エラー が発生しました。
タイトルのプレイヤー プロフィール ビュー制限の設定
GetPlayerProfile API を呼び出してより多くのデータを取得するには、データに関する制限を使用できるように設定する必要があります。 これらの設定は、ゲーム マネージャーのタイトル設定にあります。
既定では、ALLOW CLIENT ACCESS TO PROFILE PROPERTIES: では表示名だけが有効で、それにより表示名値を取得することができます。
タイトルの追加制限を設定するには:
- ゲーム マネージャー で、タイトルを選択します。
- 左上隅の歯車アイコンを選択し、[タイトルの設定] を選択します。
- [クライアント プロフィール オプション] タブを選択します。
- ProfileConstraints の [Created] と [LastLogin] の両方を有効にするには、[作成日] と [最終ログイン時刻] を確認し、[クライアント プロファイル オプションの保存] を選択します。
ここで、1CreatePlayerAndUpdateDisplayName
を呼び出すと、ユーザーの作成時刻、最後のログイン、UnicornTossMaster
の表示名に関するデータを含む PlayerProfileModel オブジェクトが返されます。
ログイン操作を使用する、プレイヤー プロフィールの取得
ほとんどの場合、プレイヤー プロフィールのデータは、プレイヤー ログイン後すぐに取得することになります。 PlayFab API を使用すると、ログイン呼び出しと呼び出しを組み合わせて 1 回の呼び出しでプレイヤー プロファイルを取得することができます。
次の例では、ログイン要求を通じてプロフィール情報を取得する方法を示しています。例として、LoginWithCustomId
を使用します。
注意
これは、すべて ログイン メカニズムで動作しています。
void CreatePlayerAndUpdateDisplayName(string customId) {
PlayFabClientAPI.LoginWithCustomID( new LoginWithCustomIDRequest() {
CustomId = customId,
// Define info request parameters
InfoRequestParameters = new GetPlayerCombinedInfoRequestParams() {
// And make sure PlayerProfile is included
GetPlayerProfile = true,
// Define rules for PlayerProfile request
ProfileConstraints = new PlayerProfileViewConstraints() {
// And make sure that both AvatarUrl and LastLogin are included.
ShowAvatarUrl = true,
ShowLastLogin = true,
}
}
},
result =>
{
// Extract the data you have requested
var avatarUrl = result.InfoResultPayload.PlayerProfile.AvatarUrl;
},
error => Debug.LogError(error.GenerateErrorReport()));
}