Freunde in Unity-Spielen

Mit der Funktion „Freunde“ von Play Spiele können Spieler eine spielübergreifende Freundesliste erstellen und pflegen. Sie können den Zugriff auf diese Freundesliste anfordern, um Ihren Spielern beim Spielen Ihres Spiels mit ihren Freunden zu helfen. Weitere Informationen zum Freundessystem finden Sie auf der Seite mit dem Freundeskonzept.

Vorbereitung

  • Richten Sie Ihr Projekt und das Google Play Spiele-Plug-in für Unity ein. Weitere Informationen finden Sie im Startleitfaden.

  • In den Best-Practices-Richtlinien erfahren Sie, wie Sie diese APIs am besten implementieren.

In den Best-Practices-Richtlinien erfahren Sie, wie Sie diese APIs am besten implementieren.

Freunde aktivieren

Nutze die folgenden Funktionen, um Freunde zu aktivieren:

  • Freunde ansehen: Sie können Zugriff auf die Freundesliste eines Spielers anfordern, damit Sie dessen Spieler zu Ihrer Freundesliste im Spiel hinzufügen können.

  • Spielerprofil ansehen: Sie können einem Spieler erlauben, das Play Spiele-Profil eines anderen Spielers aufzurufen. Das ist wichtig, damit Spieler wissen, wer ihre Freunde sind, und sich mit anderen Play Spiele-Spielern in Ihrem Spiel verbinden können. Diese muss mit einem UI-Element verknüpft sein, damit das Pop-up ausgelöst wird. Weitere Informationen findest du in den Richtlinien für Freunde.

Freunde anzeigen

Es gibt zwei Möglichkeiten, Freunde zu laden: entweder mit dem ISocial-Framework oder direkt mit PlayGamesPlatform.

Freunde mit dem ISocial-Framework laden

Social.localUser.LoadFriends((success) =>  {
    Debug.Log("Friends loaded OK: " + ok));
    foreach(IUserProfile p in Social.localUser.friends) {
         Debug.Log(p.userName + " is a friend");
    }

Dieser Aufruf schlägt jedoch fehl, wenn der aktuelle Spieler dem Spiel noch keine Berechtigung für den Zugriff auf diese Informationen erteilt hat. Verwenden Sie GetLastLoadFriendsStatus, um zu prüfen, ob LoadFriends aufgrund fehlender Einwilligung fehlgeschlagen ist.

 PlayGamesPlatform.Instance.GetLastLoadFriendsStatus((status) => {
    // Check for consent
    if (status == LoadFriendsStatus.ResolutionRequired) {
        // Ask for resolution.
    }
});

Ein Spiel kann den aktuellen Spieler bitten, die Freundesliste durch Aufrufen von AskForLoadFriendsResolution zu teilen.

PlayGamesPlatform.Instance.AskForLoadFriendsResolution((result) => {
    if (result == UIStatus.Valid) {
        // User agreed to share friends with the game. Reload friends.
    } else {
        // User doesn’t agree to share the friends list.
    }
});

Diese Funktion zeigt die entsprechende plattformspezifische Benutzeroberfläche für die gemeinsame Nutzung von Freunden an. Über diese Benutzeroberfläche wird der Spieler gefragt, ob er seine Freunde für das Spiel freigeben möchte.

Freunde mit PlayGamesPlatform laden

Alternativ können Sie LoadFriends und LoadMoreFriends verwenden, um Freunde zu laden:

PlayGamesPlatform.Instance.LoadFriends(pageSize, forceReload, (status) => {
    // Check if the call is successful and if there are more friends to load.
});

PlayGamesPlatform.Instance.LoadMoreFriends(pageSize, (status) => {
    // Check if there are more friends to load.
});

Der Parameter pageSize gibt die Anzahl der Einträge an, die für diese Seite angefragt werden sollen. Wenn bereits im Cache gespeicherte Daten vorhanden sind, kann der zurückgegebene Zwischenspeicher mehr als diese Größe enthalten. Der Zwischenspeicher enthält garantiert mindestens diese Anzahl von Einträgen, wenn die Sammlung genügend Datensätze enthält. Wenn forceReload auf true gesetzt ist, werden durch diesen Aufruf alle lokal im Cache gespeicherten Daten gelöscht und es wird versucht, die neuesten Daten vom Server abzurufen. Dies wird häufig für Aktionen wie eine vom Nutzer initiierte Aktualisierung verwendet. Normalerweise sollte diese auf false gesetzt werden, um die Vorteile des Daten-Caching nutzen zu können.

Wenn der Callback LoadFriendsStatus.LoadMore zurückgibt, können weitere Freunde geladen werden. LoadFriendsStatus.ResolutionRequired signalisiert, dass der Nutzer die Freundesliste nicht freigegeben hat und du PlayGamesPlatform.Instance.AskForLoadFriendsResolution direkt anrufen kannst.

Sichtbarkeit der Freundesliste festlegen

Mit PlayGamesPlatform.Instance.GetFriendsListVisibility kannst du prüfen, ob der Nutzer die Freundesliste für das Spiel freigegeben hat. Mögliche Rückgabestatus sind:

  • FriendsListVisibilityStatus.RequestRequired gibt an, dass Sie um Ihre Einwilligung bitten müssen.

  • FriendsListVisibilityStatus.Visible gibt an, dass das Laden der Freundesliste erfolgreich sein sollte.

  • FriendsListVisibilityStatus.Unknown sollte normalerweise nicht passieren. Sie können forceReload auf „true“ setzen, um die Daten zu aktualisieren.

PlayGamesPlatform.Instance.GetFriendsListVisibility(forceReload, (friendsListVisibilityStatus) => {});

Spielerprofil aufrufen

Um einen Spieler als Freund hinzuzufügen oder zu entfernen, verwenden Sie die Funktion zum Anzeigen und Vergleichen von Profilen. Diese Funktion löst ein Dialogfeld am unteren Rand des Tabellenblatts aus, in dem das Play Spiele-Profil des Nutzers angezeigt wird. Rufen Sie die Funktion mit der Spieler-ID des angeforderten Spielers auf. Wenn der Spieler und sein Freund Spitznamen im Spiel haben, verwenden Sie sie im Aufruf, um der Profil-UI mehr Kontext hinzuzufügen:

PlayGamesPlatform.Instance.ShowCompareProfileWithAlternativeNameHintsUI(
    mFirstFriendId, /* otherPlayerInGameName= */ null, /* currentPlayerInGameName= */ null,
    (result) => {
        // Profile comparison view has closed.
});