> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# プレイヤーデータのクイックスタート

> PlayFab Player Data クイックスタートでは、クライアントおよびサーバー SDK からカスタムプレイヤーの Key/Value フィールドを作成、読み取り、更新する方法を段階的に示します。

# クイックスタート: プレイヤーデータの設定と取得

<Note>
  PlayFab の API では、関数名に **UserData** という用語が使用されています。 **Game Manager** では、この概念は **Player Data** として説明されています。これらは同一で、相互に置き換え可能です。
</Note>

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

プレイヤーデータは、個々のプレイヤーまたはプレイヤーグループ (共有データ) に適用される情報で、PlayFab によって Key/Value ペア (KVP) として保存されます。この記事では、任意のプロセスやコンテキストから安全に呼び出せるクライアント API 呼び出しを扱います。また、開発者が管理する専用のサーバープロセス、または慎重にセキュリティ保護された CloudScript 呼び出しから *のみ* 実行すべきサーバー API 呼び出しについても扱います。サーバー API には開発者シークレットキーが必要です。このキーはクライアントに提供したり、クライアントとともに公開したりしないでください。

## 要件

* [PlayFab 開発者アカウント](https://developer.playfab.com)。
* Unity Editor のインストール済みコピー。個人利用向けの Unity は Unity Hub 経由、業務利用向けの Unity+ は [Unity のダウンロード](https://unity3d.com/get-unity/download) を参照してください。

<Note>
  PlayFab Unity3D SDK は Unity Editor バージョン 5.3 (2015 年 12 月リリース) 以降をサポートしています。
</Note>

* Unity プロジェクトは以下のいずれかです:
  * 新規プロジェクト。詳しくは [Starting Unity for the first time](https://docs.unity3d.com/550/Documentation/Manual/GettingStarted.html) を参照してください。
  * ガイド付きチュートリアルのプロジェクト。詳しくは [Getting Started with Unity](https://learn.unity.com/) を参照してください。
  * 既存のプロジェクト。
* PlayFab Unity3D SDK。

PlayFab Unity3D SDK のセットアップについては、[クイックスタート: Unity 向け C# 用 PlayFab クライアントライブラリ](/services/playfab/sdks/unity3d/quickstart) の記事を参照してください。この記事では、PlayFab アカウントがあり、Unity3D SDK が正しく構成されていることを確認できます。

## コード例について

この記事の C# サンプルは Unity SDK 向けに書かれています。Unity SDK は非同期タスクを扱うためにイベント駆動モデルを使用します。C# SDK でサンプルコードを実行するには、コードを async Task モデルを使用するように変更する必要があります。変更が必要なメソッドは、シグネチャのメソッド名に Async が付加されています。たとえば、Unity SDK の SetObject は、C# SDK では SetObjectAsync になります。詳しくは [async と await を使用した非同期プログラミング](https://learn.microsoft.com/en-us/dotnet/csharp/programming-guide/concepts/async/) を参照してください。

既存の Unity プロジェクトを使用することもできますが、このクイックスタートでは、[クイックスタート: Unity 向け C# 用 PlayFab クライアントライブラリ](/services/playfab/sdks/unity3d/quickstart) の完了時に作成したサンプルを使用していることを前提としています。

## Game Manager 内のプレイヤーデータ

Game Manager では、以下の手順でいつでもプレイヤーデータを取得および設定できます。

* **Game Manager** を開きます。よく知らない場合は、[Game Manager クイックスタート](/services/playfab/live-service-management/gamemanager/quickstart) を参照してください。
* **Players** タブを選択します。
* **Player** の名前を選択して **Players Account** タブにアクセスします。
* **Player Data** タブを選択して、データを確認します。

## プレイヤーデータの設定および取得を行うメソッドの追加

1. Unity Editor で、サンプルプロジェクトを開きます。

2. **Project** ウィンドウで **Assets** > **Scripts** を開き、PlayFabLogin スクリプトを開きます。

3. Visual Studio で、次の内容を using ステートメントに追加します:

   `using System.Collections.Generic;`

4. プレイヤーデータを設定するために、`PlayFabLogin` クラスに `SetUserData` メソッドを追加します。 `SetUserData` は [UpdateUserData](xref:titleid.playfabapi.com.client.playerdatamanagement.updateuserdata) メソッドを使用して、ログイン中のプレイヤーのプレイヤーデータを作成または更新します。

   このメソッドは、KVP `Ancestor` を値 `Arthur` で、`Successor` を値 `Fred` で作成 (もしくは既に存在する場合は更新) します。

   ```csharp theme={null}
   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](xref:titleid.playfabapi.com.client.playerdatamanagement.getuserdata) メソッドを使用して、指定したプレイヤーのプレイヤーデータを取得します。

   ```csharp theme={null}
   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` メソッド内で `SetUserData` と `GetUserData` を呼び出します。

   ```csharp theme={null}
   private void OnLoginSuccess(LoginResult result) {
       Debug.Log("Congratulations, you made your first successful API call!");
       SetUserData();
       GetUserData(result.PlayFabId);
   }
   ```

7. ファイルを保存します。

## サンプルの実行

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

## 関連項目

* [内部プレイヤーデータを設定する方法](/services/playfab/player-progression/player-data/how-to-set-internal-player-data)
* [内部プレイヤーデータを取得する方法](/services/playfab/player-progression/player-data/how-to-get-internal-player-data)
* [読み取り専用のプレイヤーデータを設定する方法](/services/playfab/player-progression/player-data/how-to-set-read-only-player-data)
* [読み取り専用のプレイヤーデータを取得する方法](/services/playfab/player-progression/player-data/how-to-get-read-only-player-data)
* [CloudScript から読み取り専用または内部プレイヤーデータを変更する方法](/services/playfab/player-progression/player-data/how-to-modify-read-only-internal-player-data)
* [Title Data クイックスタート](/services/playfab/live-service-management/game-configuration/titledata/quickstart)
* [Publisher Data の使用](/services/playfab/live-service-management/game-configuration/titledata/using-publisher-data)
* [CloudScript クイックスタート](/services/playfab/live-service-management/service-gateway/automation/cloudscript/quickstart)
