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 つのフィールドを使用して指定します。
- EntityType
- EntityID
関連する API 呼び出し
例: 独自のカスタム イベントを投稿する
さまざまな収納箱を開くプレイヤーに関する情報を集計するとします。 標準のイベント情報と共に、ChestType
と LevelID
を記録します。
残念ながら、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()));
}
- メソッドは、
ChestType
とLevelId
を受け取ります。 - プレイヤーにバインドされたカスタム イベントを投稿するために、WritePlayerEvent API 呼び出しを使用します。
- イベント固有の必要な本文を指定します。 この例では、
ChestType
フィールドとLevelId
フィールドを指定します。 - カスタム イベントを識別するイベント名を指定します。 この例では、イベント種類名に
player_chest_opened
を使用します。