PlayStream イベントを生成する

このチュートリアルでは、PlayFab での自動およびカスタム PlayStream イベントの概要について説明します。

自動イベントの概要

名前から分かるように、自動イベントは通常の API メソッド呼び出しにより自動的に発生します。 既存のほとんどの API メソッドは PlayStream イベントを生成します。

ただし、ゲームに固有なイベントの収集が必要な場合がありますが、PlayFab では標準でサポートされていません。

この目的のためには、カスタム イベントの使用を検討してください (次の「カスタム イベントの概要」セクションで説明しています)。

メール アドレスとパスワードのペアが有効な場合は、それらを使用して、次の API 呼び出しによりプレイヤーがサインインされます。

PlayFabClientAPI.LoginWithEmailAddress(new LoginWithEmailAddressRequest() {
    Email = "my@email.com",
    Password = "qwerty"
},
result=> Debug.Log(result.PlayFabId),
error=> Debug.LogError(error.GenerateErrorReport()));

この際、PlayFab は player_logged_in イベントを記録します。

カスタム イベントの概要

PlayFab は自動的に多くのイベントを記録しますが、ゲーム固有のイベントが必要な場合もあります。

カスタム イベントの概念を使用すれば、任意の種類と名前を持つイベントを投稿できます。

自動イベントと同様に、カスタム イベントは リアルタイム分析ツール に完全に反映されます。 自動イベントとは異なり、カスタム イベントを投稿するために少量のカスタム コードを作成する必要があります。

カスタム イベントは、エンティティによって分類できます。 カスタム イベントは、プレイヤー、キャラクター、またはタイトルにバインドすることができます。 イベント エンティティの参照は、次の 2 つのフィールドを使用して指定します。

  1. EntityType
  2. EntityID

関連する API 呼び出し

例: 独自のカスタム イベントを投稿する

さまざまな収納箱を開くプレイヤーに関する情報を集計するとします。 標準のイベント情報と共に、ChestTypeLevelID を記録します。

残念ながら、PlayFab は対応する自動イベントを標準でサポートしません。 カスタム プレイヤー イベントを使用してこの問題を解決します。

前提条件

プレイヤーがログイン済みである。 コードにはコールバック OnChestOpen があり、LevelID および ChestType がそのコールバックに渡されます。

解決策

実行すると、次のコードによりカスタム プレイヤー イベントが投稿されます。

private void OnChestOpened(string chestType, int levelId) {
    PlayFabClientAPI.WritePlayerEvent(new WriteClientPlayerEventRequest() {
        Body = new Dictionary<string, object>() {
            { "ChestType", chestType },
            { "LevelId", levelId }
        },
        EventName = "player_chest_opened"
    },
    result => Debug.Log("Success"),
    error => Debug.LogError(error.GenerateErrorReport()));
}
  1. メソッドは、ChestTypeLevelId を受け取ります。
  2. プレイヤーにバインドされたカスタム イベントを投稿するために、WritePlayerEvent API 呼び出しを使用します。
  3. イベント固有の必要な本文を指定します。 この例では、ChestType フィールドと LevelId フィールドを指定します。
  4. カスタム イベントを識別するイベント名を指定します。 この例では、イベント種類名に player_chest_opened を使用します。