JackMasaki’s blog

掲載した記事ネタや作ったアプリ、参加したイベントレポートなどを掲載します

PlayFabでPlayerの情報やUserDataを取得する

今回はUnityでのPlayerの取得を書きます。

PlayFabの導入部分はこちら

jackmasaki.hatenablog.com


PlayFabにおけるPlayerとは

PlayFabを使用するうえで必要不可欠な仕組みです。 ログインやコミュニケーション機能があるほか、セグメンテーション、LiveOps、アナリティクスなどでデータを閲覧する主となるものになります。

FacebookやSteam、AndroidNintendo Switchなどの本体とリンクして簡易なログインを可能にする機能などもあります。 (個人的にはTwitterも欲しい…)


Playerの作成

PlayFabのPlayersからNEW PLAYERを選択します。 New playerを作成するにはCustom IDが自動で入力されます。

このCustom IDを使用することでログインするLoginWithCustomIDなどがあります。 もし任意のCustom IDを使用したい場合にはUNLOCKをクリックしCustom IDを入力してください。

作成したPlayerをクリックするとPlayerに関する様々なデータが閲覧できます。

f:id:JackMasaki:20180911012222p:plain


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型の設定をすることができ、これを取得することができます。

f:id:JackMasaki:20180911014258p:plain

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"と表示されれば成功です。