次の方法で共有


クイックスタート: プレイヤー データを設定して取得する

注意

PlayFab API では、機能名に UserData という用語を使用します。 ゲーム マネージャー では、この概念が [プレイヤー データ] として説明されています。 いずれも同一であり、言い換え可能です。

PlayFab プレイヤー データの使用を開始します。 このクイックスタートでは Unity で C# を使う方法、および PlayFab CloudScript を使用してプレイヤー データを設定し取得する方法をご紹介します。

プレイヤー データは、個人のプレイヤーかプレイヤー グループ (共有データ) に適用された情報で、PlayFab によって Key/Value Pairs (KVPs) に格納されます。 この記事では、任意のプロセスまたはコンテキストから安全に呼び出すことができるクライアント API 呼び出しについて説明します。 また、サーバー API の呼び出しについても説明しています。自分が管理する専用のサーバー プロセスか、慎重にセキュリティで保護された CloudScript 呼び出しによって のみ 実行されます。 Server API には開発秘密鍵が必要です。 この鍵をクライアントに提供したり、クライアントと共に公開したりしないでください。

要件

  • 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# SDK を使用してサンプル コードを実行するには、非同期タスク モデルを使用するようにコードを変更する必要があります。 修正が必要なメソッドは、署名のメソッド名に非同期が付加されています。 たとえば、Unity SDK の SetObject は、C# SDK では SetObjectAsync になります。 詳細については、「MSDN ガイド - async と await を使った非同期プログラミング」を参照してください。

既存の Unity プロジェクトを使用できますが、このクイック スタートでは、「クイック スタート: Unity の C# 用の Quickstart: PlayFab クライアント ライブラリ」を完了したときに作成されたサンプルを使用していることを前提としています。

ゲーム マネージャーのプレイヤー データ

次の手順を実行して、ゲーム マネージャーを通じて、常にプレイヤー データを取得し、設定できます。

  • ゲーム マネージャー を開きます。 この機能に慣れていない場合は、「ゲーム マネージャーのクイックスタート」をご覧ください。
  • [プレイヤー] タブを選択します。
  • プレイヤーの名前を選択して、[プレイヤー アカウント] タブにアクセスします。
  • [プレイヤー データ] タブを選択し、データを表示します。

プレイヤー データを設定するメソッドと、プレイヤー データを取得するメソッドを追加する

  1. Unity エディターで、サンプル プロジェクトを開きます。

  2. [プロジェクト] ウィンドウで、[アセット]>> [スクリプト] の順に開き、PlayFabLogin スクリプトを開きます。

  3. Visual Studio で、使用中の次のステートメントに以下を追加します:

    using System.Collections.Generic;

  4. プレイヤー データを設定するには、PlayFabLogin クラスに SetUserData メソッドを追加します。 SetUserData UpdateUserData メソッドを使用して、ログインしているプレイヤーのプレイヤー データを作成または更新します。

    このメソッドは、値 Arthur を持つ KVP Ancestor と、値 Fred を持つ KVP Successor を作成します (あるいは、キー/値のペアがすでに存在する場合は更新します)。

    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());
        });
    }
    
  5. プレイヤー データを取得するには、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());
        });
    }
    
  6. OnLoginSuccess メソッドで SetUserDataGetUserData を呼び出します。

    private void OnLoginSuccess(LoginResult result) {
        Debug.Log("Congratulations, you made your first successful API call!");
        SetUserData();
        GetUserData(result.PlayFabId);
    }
    
  7. ファイルを保存します。

サンプルを実行します

Unity エディターで、再生ボタンを選択します。 成功した場合は、呼び出しの結果がコンソール ウィンドウに表示されます。

関連項目