Generieren von PlayStream-Ereignissen

Dieses Tutorial bietet eine Übersicht über automatische und benutzerdefinierte PlayStream-Ereignisse in PlayFab.

Übersicht über automatische Ereignisse

Wie der Name schon sagt, ist ein automatisches Ereignis, das automatisch mit einem normalen API-Methodenaufruf auftritt. Die meisten vorhandenen API-Methoden generieren PlayStream-Ereignisse.

Manchmal müssen Sie jedoch Ereignisse erfassen, die sehr spezifisch für Ihr Spiel sind und nicht von PlayFab standardmäßig bereitgestellt werden.

Erwägen Sie zu diesem Zweck die Verwendung eines benutzerdefinierten Ereignisses (wie im nächsten Abschnitt, Übersicht über benutzerdefinierte Ereignisse beschrieben).

Beispiel

Wenn ein E-Mail-Kennwortpaar gültig ist, wird mit dem folgenden API-Aufruf ein Spieler mit E-Mail und Kennwort angemeldet.

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

Als Nebeneffekt zeichnet PlayFab ein player_logged_in-Ereignis auf.

Übersicht über benutzerdefinierte Ereignisse

Während PlayFab viele Ereignisse automatisch aufzeichnet, benötigen Sie manchmal Ereignisse, die sehr spezifisch für Ihr Spiel sind.

Das Konzept von benutzerdefinierten Ereignissen ermöglicht es Ihnen, Ereignisse mit einem beliebigen Typ und Namen zu posten.

Ähnlich wie bei automatischen Ereignissen werden benutzerdefinierte Ereignisse vollständig durch Echtzeitanalysetools widergespiegelt. Im Gegensatz zu automatischen Ereignissen benötigen Sie ein wenig benutzerdefinierten Code, um benutzerdefinierte Ereignisse zu posten.

Benutzerdefinierte Ereignisse können nach Entität klassifiziert werden. Ein benutzerdefiniertes Ereignis kann an einen Spieler, einen Charakter oder einen Titel gebunden werden. Ein Ereignisentitätsverweis wird mithilfe dieser beiden Felder angegeben:

  1. EntityType
  2. EntityID

Relevante API-Aufrufe

Beispiel: Veröffentlichen Eines eigenen benutzerdefinierten Ereignisses

Sie möchten Informationen über Spieler aggregieren, die verschiedene Truhen öffnen. Zusammen mit Standardereignisinformationen möchten Sie und LevelIDaufzeichnenChestType.

Leider stellt PlayFab kein entsprechendes automatisches Ereignis bereit. Verwenden Sie ein benutzerdefiniertes Playerereignis, um das Problem zu lösen.

Voraussetzungen

Ihr Spieler ist bereits angemeldet. In Ihrem Code haben Sie einen Rückruf OnChestOpen, LevelID, und ChestType werden an diesen Rückruf übergeben.

Lösung

Nach der Ausführung postiert der folgende Code Ihr benutzerdefiniertes Playerereignis.

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. Die -Methode empfängt ChestType und LevelId.
  2. Verwenden Sie den WritePlayerEvent-API-Aufruf , um ein benutzerdefiniertes Ereignis zu veröffentlichen, das an einen Player gebunden ist.
  3. Stellen Sie einen Text bereit, der für Ihre Ereignisse und Ihre Anforderungen spezifisch ist. In diesem Fall stellen wir die ChestType Felder und LevelId bereit.
  4. Geben Sie einen Ereignisnamen an, der Ihr benutzerdefiniertes Ereignis identifiziert. In diesem Fall verwenden wir den player_chest_opened Ereignistypnamen.