PlayFabでPlayerの情報やUserDataを取得する
今回はUnityでのPlayerの取得を書きます。
PlayFabの導入部分はこちら
PlayFabにおけるPlayerとは
PlayFabを使用するうえで必要不可欠な仕組みです。 ログインやコミュニケーション機能があるほか、セグメンテーション、LiveOps、アナリティクスなどでデータを閲覧する主となるものになります。
FacebookやSteam、Android、Nintendo Switchなどの本体とリンクして簡易なログインを可能にする機能などもあります。 (個人的にはTwitterも欲しい…)
Playerの作成
PlayFabのPlayersからNEW PLAYERを選択します。 New playerを作成するにはCustom IDが自動で入力されます。
このCustom IDを使用することでログインするLoginWithCustomIDなどがあります。 もし任意のCustom IDを使用したい場合にはUNLOCKをクリックしCustom IDを入力してください。
作成したPlayerをクリックするとPlayerに関する様々なデータが閲覧できます。
Playerの情報をUnityで取得する
Unityで先ほど作成したPlayerの情報を取得してみます。 例えば次のコードで取得することができます。
using PlayFab; private void GetProfile(){ PlayFabClientAPI.GetPlayerProfile(new GetPlayerProfileRequest() { PlayFabId = "" }, result => { var playerProfile = result.PlayerProfile; }, error => Debug.Log(error.GenerateErrorReport())); }
取得できるPlayerProfileはPlayFab.Client.Models.PlayerProfileModelとなっており次の要素を持っています。
PlayFab.Client.Models.PlayerProfileModel | |
---|---|
AdCampaignAttributions | Playerが要因となった広告キャンペーンのリスト |
AvatarUrl | Playerのアバター画像のURL |
BannedUntil | PlayerがBANされている場合の終了日付 |
ContactEmailAddresses | Playerに紐づけられているEmailのリスト |
Created | Playerが作成された日時 |
DisplayName | Playerの表示名 |
LastLogin | Playerが最後に該当TitleにログインしたUTC時間 |
LinkedAccounts | Plyerアカウントにリンクされている認証システムのリスト |
Locations | Playerがログインしている場所のリスト |
Memberships | PlayerのMembershipのリストと期限切れかどうか |
Origination | Playerの口座 |
PlayerId | PlayerのPlayFabのユニークID |
PublisherId | Playerが所属するPublisherID |
PushNotificationRegistrations | Playerのプッシュ通知を送信するためのエンドポイントリスト |
Statistics | Playerのリーダーボードのリスト |
Tags | Playerのセグメンテーション上でのタグのリスト |
TitleId | PlayerのProfileが適応されるTitleID |
TotalValueToDateInUSD | いままで支払ったPlayerの現金の総額 |
ValuesToDate | 現金を使用して支払ったPlayerの購入リスト |
独自のPlayer Dataを設定し取得する
PlayerにはDataと呼ばれる変数を設定することができます。 PlayFabの特定Playerをクリックし、Player Data(Title)を選択します。 ここでDictionary型の設定をすることができ、これを取得することができます。
Player Dataには次の三種類があります。
Player Data | |
---|---|
PLAYER DATA | Clientからも読み書きできるデータ |
READ ONLY DATA | Clientから読み込みのみできるデータ |
INTERNAL DATA | Playerの内部データ,Clientに公開しない |
今回は例としてPLAYER DATAのKeyに"Age"、Valueに"25"と入れてみます。 右下にNew、Changes、Removeがあるので変更数が正しいことを確認したらSAVE PLAYER DATAを選択します。
次にこのデータをUintyで取得します。取得にはGetUserData()を使用します。
例えば次のようなコードで取得することができます。
public void GetPlayerData() { PlayFabClientAPI.GetUserData(new GetUserDataRequest { PlayFabId = "*****************" }, result => { Debug.Log(result.Data["Age"].Value); }, error => Debug.Log(error.GenerateErrorReport()));
返ってくるDataはDictionary型になるので"Age"のValueを見るようなコードになっています。 実行してConsoleに"25"と表示されれば成功です。