Tutorial: Abrufen eines Spielerprofils

In diesem Tutorial erfahren Sie Folgendes:

  • Erstellen eines Benutzers mit einem Anzeigenamen
  • Tätigen eines Spielerprofilaufrufs
  • Abrufen der Erstellungszeit des Spielers und Der Zeitpunkt der letzten Anmeldung
  • Konfigurieren der Einschränkungen für die Spielerprofilansicht für den Titel
  • Abrufen des Spielerprofils per Anmeldevorgang

Voraussetzungen

  • Ein PlayFab-Entwicklerkonto.
  • Eine installierte Kopie des Unity-Editors. Informationen zum Installieren von Unity für den persönlichen Gebrauch über Unity Hub oder Unity+ für die professionelle Verwendung finden Sie unter Herunterladen von Unity.

    Notiz

    Das PlayFab Unity3D SDK unterstützt Unity Editor Version 5.3 (veröffentlicht im Dezember 2015) und höher.

  • Ein Unity-Projekt * dies kann eine der folgenden Sein:
  • Das PlayFab Unity3D SDK.

Für dieses Tutorial sind grundlegende Kenntnisse in der Erstellung eines Spielers für Ihren Titel erforderlich, damit Sie einen GetPlayerProfile auf dem Spieler ausführen können.

Es lohnt sich auch, den Game Manager-Schnellstart zu lesen, wenn Sie mit dem Game Manager nicht vertraut sind, da hier Profileinschränkungen konfiguriert werden.

Die C#-Beispiele in diesem Artikel wurden für das Unity SDK geschrieben. Das Unity SDK verwendet ein ereignisgesteuertes Modell, um nicht synchrone Aufgaben zu verarbeiten. Um den Beispielcode mit den Standard-C#- oder Xamarin C#-SDKs auszuführen, müssen Sie den Code so ändern, dass er ein asynchrones Aufgabenmodell verwendet. Methoden, die geändert werden müssen, weisen Async an den Methodennamen in der Signatur an. Beispielsweise wird SetObject im Unity SDK im Standard-C#-SDK zu SetObjectAsync. Weitere Informationen finden Sie unter Asynchrone Programmierung mit async und await.

Erstellen eines Benutzers mit einem Anzeigenamen

Der erste Schritt besteht darin, einen Player zu erstellen und dem Benutzer einen Anzeigenamen hinzuzufügen. In diesem Beispiel wird ein neuer Benutzer mit dem Anzeigenamen UnicornTossMastererstellt.

void CreatePlayerAndUpdateDisplayName() {
    PlayFabClientAPI.LoginWithCustomID( new LoginWithCustomIDRequest {
        CustomId = "PlayFabGetPlayerProfileCustomId",
        CreateAccount = true
    }, result => {
        Debug.Log("Successfully logged in a player with PlayFabId: " + result.PlayFabId);
        UpdateDisplayName();
    }, error => Debug.LogError(error.GenerateErrorReport()));
}

void UpdateDisplayName() {
    PlayFabClientAPI.UpdateUserTitleDisplayName( new UpdateUserTitleDisplayNameRequest {
        DisplayName = "UnicornTossMaster"
    }, result => {
        Debug.Log("The player's display name is now: " + result.DisplayName);
    }, error => Debug.LogError(error.GenerateErrorReport()));
}

In der Konsolenausgabe sollte Folgendes angezeigt werden:

Successfully logged in a player with PlayFabId: SOME_PLAYFAB_ID
The player's display name is now: UnicornTossMaster

Tätigen eines Spielerprofilaufrufs

Der nächste Schritt besteht darin, ein sehr einfaches Profil für den Spieler zu erstellen.

Im folgenden Beispiel wird ein einfacher GetPlayerProfile-Aufruf verwendet.

void GetPlayerProfile(string playFabId) {
    PlayFabClientAPI.GetPlayerProfile( new GetPlayerProfileRequest() {
        PlayFabId = playFabId,
        ProfileConstraints = new PlayerProfileViewConstraints() {
            ShowDisplayName = true
        }
    },
    result => Debug.Log("The player's DisplayName profile data is: " + result.PlayerProfile.DisplayName),
    error => Debug.LogError(error.GenerateErrorReport()));
}

Die Antwort enthält ein PlayerProfileModel-Objekt , das den Anzeigenamen UnicornTossMaster für den Player enthält.

Abrufen der Erstellungszeit des Spielers und Der Zeitpunkt der letzten Anmeldung

Im PlayerProfileModel-Objekt gibt es eine angemessene Menge an Daten über den Player. Im vorherigen Schritt wurde eine GetPlayerProfile ausgegeben, und die empfangene Antwort enthielt nur Anzeigenameninformationen.

Der nächste Schritt besteht darin, noch mehr Profildaten für den Spieler zu erhalten. Rufen Sie GetPlayerProfile dazu mit zusätzlichen Feldern im Anforderungsparameter PlayerProfileViewConstraints auf.

Im folgenden C#- Beispiel wird die GetPlayerProfile -Methode aus Schritt 2 geändert und aufgerufen GetPlayerProfile , um die Created Felder und LastLogin anzufordern, indem ihre Flags in den ProfileConstraints festgelegt werden.

Notiz

Dies ist ein nicht erfolgreicher Aufruf in diesem Schritt!!

void CreatePlayerAndUpdateDisplayName(string playFabId) {
    PlayFabClientAPI.GetPlayerProfile( new GetPlayerProfileRequest() {
        PlayFabId = playFabId,
        ProfileConstraints = new PlayerProfileViewConstraints {
            ShowDisplayName = true,
            ShowCreated = true,
            ShowLastLogin = true
        }
    },
    result => Debug.Log("The player's profile Created date is: " + result.PlayerProfile.Created),
    error => Debug.LogError(error.GenerateErrorReport()));
}

Wenn Sie diesen Beispielcode an diesem Punkt ausführen, wird ein Fehler mit zurückgegeben Error Code 1303. RequestViewConstraintParamsNotAllowedund eine Fehlermeldung, die besagt, dass es eine JSON-Ausgabe von Einschränkungen gibt Invalid view constraints , die der Titel derzeit festgelegt hat.

Der Fehler tritt auf, weil Sie die Möglichkeit zum Anzeigen Created von und LastLogin in den Profileinschränkungseinstellungen Ihres Titels noch nicht konfiguriert haben.

Konfigurieren der Einschränkungen für die Spielerprofilansicht für den Titel

Wenn Sie beim Aufrufen der GetPlayerProfile-API weitere Daten abrufen möchten, müssen Sie die Einschränkungen für die Verfügbarkeit der Daten konfigurieren. Diese Einstellungen befinden sich in den Einstellungen des Titels im Game Manager.

Standardmäßig war für CLIENTZUGRIFF AUF PROFILEIGENSCHAFTEN ZULASSEN: nur Anzeigename aktiviert, wodurch Sie den Wert Anzeigename abrufen konnten.

So konfigurieren Sie zusätzliche Einschränkungen für den Titel:

  • Wählen Sie im Game Manager Ihren Titel aus.
  • Wählen Sie das Zahnradsymbol in der oberen linken Ecke und dann Titeleinstellungen aus.
  • Wählen Sie die Registerkarte Clientprofiloptionen aus.
  • Um sowohl Created als auch LastLogin in ProfileConstraints zu aktivieren, aktivieren Sie Erstellungsdatum und Zeitpunkt der letzten Anmeldung, und wählen Sie dann CLIENTPROFILOPTIONEN SPEICHERN aus.

PlayFab-Einstellungen * Clientprofiloptionen * Clientzugriff auf Profileigenschaften zulassen

Wenn Sie nun 1CreatePlayerAndUpdateDisplayName aufrufen, wird das PlayerProfileModel-Objekt mit Daten zum Erstellungszeitpunkt des Benutzers, zur letzten Anmeldung und zum Anzeigenamen zurückgegeben UnicornTossMaster.

Abrufen des Spielerprofils per Anmeldevorgang

In den meisten Fällen möchten Sie Spielerprofildaten abrufen, sobald sich ein Spieler anmeldet. Mit der PlayFab-API können Sie den Anmeldeaufruf und den Aufruf zum Abrufen des Spielerprofils in einem einzigen Aufruf kombinieren.

Das folgende Beispiel zeigt, wie Profilinformationen über eine Anmeldeanforderung erfasst werden, und verwendet LoginWithCustomId als Beispiel.

Notiz

Dies funktioniert mit jedem Anmeldemechanismus.

void CreatePlayerAndUpdateDisplayName(string customId) {
    PlayFabClientAPI.LoginWithCustomID( new LoginWithCustomIDRequest() {
        CustomId = customId,
        // Define info request parameters
        InfoRequestParameters = new GetPlayerCombinedInfoRequestParams() {
            // And make sure PlayerProfile is included
            GetPlayerProfile = true,
            // Define rules for PlayerProfile request
            ProfileConstraints = new PlayerProfileViewConstraints() {
                // And make sure that both AvatarUrl and LastLogin are included.
                ShowAvatarUrl = true,
                ShowLastLogin = true,
            }
        }
    },
    result =>
    {
        // Extract the data you have requested
        var avatarUrl = result.InfoResultPayload.PlayerProfile.AvatarUrl;
    },
    error => Debug.LogError(error.GenerateErrorReport()));
}