タイトル データ クイックスタート

タイトルデータとは、プレーンテキストのキーと値のペアのことで、ゲームの構成データをリモートでサーバーに格納し管理するために使用します。 これにより、タイトル全体の設定変数がアクセス、整理可能になり、クライアント側で取得できます。

このクイックスタートでは、タイトルのデータをプログラムで作成し、使用する方法について説明します。

これが重要なトピックであるのは、ゲームの設定データを (いつでも変更できる) サーバーにリモートで保存することが、PlayFab などのサービスを使用する最も基本的な理由の 1 つになっているからです。

タイトル データの取得

ゲーム クライアントから

PlayFabClientAPIGetTitleData を使用して、特定タイトルの KVP を取得します。 次のコードの例では、タイトル データのすべての値を表示しています。

public void ClientGetTitleData() {
    PlayFabClientAPI.GetTitleData(new GetTitleDataRequest(),
        result => {
            if(result.Data == null || !result.Data.ContainsKey("MonsterName")) Debug.Log("No MonsterName");
            else Debug.Log("MonsterName: "+result.Data["MonsterName"]);
        },
        error => {
            Debug.Log("Got error getting titleData:");
            Debug.Log(error.GenerateErrorReport());
        }
    );
}

ゲーム サーバーから

PlayFabServerAPIGetTitleData を使用して、特定タイトルの KVP を取得します。 次のコードの例では、タイトル データのすべての値を表示しています。

public void ServerGetTitleData() {
    PlayFabServerAPI.GetTitleData( new GetTitleDataRequest(),
        result => {
            if (result.Data == null || !result.Data.ContainsKey("MonsterName")) Debug.Log("No MonsterName");
            else Debug.Log("MonsterName: " + result.Data["MonsterName"]);
        },
        error => {
            Debug.Log("Got error getting titleData:");
            Debug.Log(error.GenerateErrorReport());
        });
}

タイトル データの設定

タイトル データをとても頻繁に変更する可能性は低いです。 ほとんどの場合、タイトルの寿命の中でほとんど変更されない静的データのタイトル データを使用する必要があります。

ゲーム マネージャーか、サーバー API 機能を使用して、タイトル データを設定できます。

ゲーム マネージャーを使用した、タイトル データの設定

ゲーム マネージャーを使用してプライマリ タイトル データをタイトルに追加するには、以下の手順を実行します。

  1. ゲーム マネージャー でタイトルを開きます。
  2. [コンテンツ][データ タイトル] の順に選択します。
  3. [New Title Data (新しいタイトル データ)] を選択します
  4. 新規のタイトル データ ページで、[キー] の値と [値] の値を入力します。 [キー][値] は両方とも、文字列として保存されます。
  5. [保存] ボタンを使用して、新しいデータ アイテムを保存します。

新しいタイトル データを示すスクリーンショット。

タイトル データのスクリーンショット

C# の場合、サーバー API を呼び出して、タイトル データを設定します。

SetTitleData API は、専用サーバーから呼び出す必要があるサーバー API です。 SetTitleData の各呼び出しでは、1 つのタイトル データの KVP のみを設定できます。

public void SetTitleData() {
    PlayFabServerAPI.SetTitleData(
        new SetTitleDataRequest {
            Key = "MonsterName",
            Value = "Dorf"
        },
        result => Debug.Log("Set titleData successful"),
        error => {
            Debug.Log("Got error setting titleData:");
            Debug.Log(error.GenerateErrorReport());
        }
    );
}

ゲーム マネージャーによるタイトル データのオーバーライド設定

オーバーライドは JSON キーと値のペアのセットでもあり、プライマリ タイトル データのキーと値のペアで必要な差分変更を保持することが理想的です。 差分の変更は、プライマリー タイトル データと比較した場合のキーと値のペアを、新しいキーと値、既存キーの値の変化、またはキーの削除 (値の入力として NULL を使用) として構成することができます。

プライマリ タイトル データにオーバーライドを追加するには、次の手順を実行します。

  1. ゲーム マネージャー でタイトルを開きます。
  2. [コンテンツ][データ タイトル] の順に選択します。
  3. [New Override (新しいオーバーライド)] 選択します。
  4. オーバーライド ラベルを入力し、さらにキーを入力します。 キーと値は両方とも、文字列として保存されます。
  5. [保存] ボタンを使用して、新しいタイトル データ オーバーライドを保存します。

注意

このキーと値のペアのオーバーライド セットは、現時点では Experiments (実験) を使用してのみ有効です。 プレイヤーがタイトル データのオーバーライドを含む実験バリアントに属している場合、オーバーライドはサーバー側で自動的に適用され、クライアント側のタイトル データと共に返されます。 タイトル データ オーバーライドの値を更新して保持するには、最大で 1 分かかる場合があります。

新しいタイトル データのオーバーライドを示すスクリーンショット。

タイトル データのオーバーライドを設定する方法を示すスクリーンショット。

タイトル データとオーバーライドを示すスクリーンショット。

内部のタイトル データ

ユーザー データと同様に、タイトル データはクライアントから非表示となる内部ストレージ保存されます。 このデータは、ゲーム マネージャーまたはサーバー API を使用しても設定できます。

C# の場合、サーバー API を呼び出して、内部のタイトル データを取得します。

public void GetTitleInternalData()
{
    PlayFabServerAPI.GetTitleInternalData( new GetTitleDataRequest(),
        result => {
            if (result.Data == null || !result.Data.ContainsKey("PlayFab")) Debug.Log("No PlayFab");
            else Debug.Log("PlayFab: " + result.Data["PlayFab"]);
        },
        error => {
            Debug.Log("Got error getting titleData:");
            Debug.Log(error.GenerateErrorReport());
        }
    );
}

C# の場合、サーバー API を呼び出して、内部のタイトル データを設定します。

public void SetTitleInternalData() {
    PlayFabServerAPI.SetTitleInternalData(
        new SetTitleDataRequest {
            Key = "PlayFab",
            Value = "{ \"Status\": \"Secretly Awesome\" }"
        },
        result => { Debug.Log("Set titleData successful"); },
        error =>
        {
            Debug.Log("Got error setting titleData:");
            Debug.Log(error.GenerateErrorReport());
        });
}

関連項目