Freunde in Unity-Spielen

Mit Play Spiele für Freunde können Spieler eine spielübergreifende Freundesliste erstellen und verwalten. Sie können Zugriff auf diese Freundesliste anfordern, damit Ihre Spieler Ihr Spiel mit ihren Freunden spielen können. Weitere Informationen zum Freundessystem finden Sie auf der Konzeptseite für Freunde.

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 finden Sie eine Anleitung zur optimalen Implementierung dieser APIs.

In den Best Practices finden Sie eine Anleitung zur optimalen Implementierung dieser APIs.

Funktion „Freunde“ aktivieren

Mit den folgenden Funktionen kannst du Freunde zulassen:

  • Freunde ansehen: Sie können Zugriff auf die Freundesliste eines anderen Spielers anfordern, um seine Freunde aus Google Play Spiele zu Ihrer In-Game-Freundesliste hinzuzufügen.

  • Spielerprofil ansehen: Spieler können das Play Spiele-Profil eines anderen Spielers ansehen. Das ist wichtig, damit Spieler wissen, wer ihre Freunde sind, und sich mit anderen Play Spiele-Spielern in Ihrem Spiel vernetzen können. Dieser muss mit einem UI-Element verknüpft sein, um das Pop-up auszulösen. Weitere Informationen finden Sie in den Richtlinien für Freundschaften.

Freunde ansehen

Es gibt zwei Möglichkeiten, Freunde zu laden: entweder über das 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 nicht die Berechtigung zum Zugriff auf diese Informationen erteilt hat. Mit GetLastLoadFriendsStatus kannst du prüfen, ob LoadFriends aufgrund einer fehlenden 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 freizugeben, indem es AskForLoadFriendsResolution aufruft.

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 platformspezifische Benutzeroberfläche für die Freigabe von Inhalten mit Freunden an. Auf dieser Benutzeroberfläche wird der Spieler gefragt, ob er seine Freunde mit dem Spiel teilen möchte.

Freunde mit PlayGamesPlatform laden

Du kannst Freunde auch mit LoadFriends und LoadMoreFriends 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 angefordert werden sollen. Wenn bereits Daten im Cache vorhanden sind, kann der zurückgegebene Puffer mehr als diese Größe enthalten. Der Puffer enthält garantiert mindestens so viele Einträge, wenn die Sammlung genügend Datensätze enthält. Wenn forceReload auf true festgelegt 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 dieser Wert auf false festgelegt sein, um die Vorteile des Daten-Cachings zu nutzen.

Wenn der Rückruf LoadFriendsStatus.LoadMore zurückgibt, sind noch weitere Freunde zu laden. LoadFriendsStatus.ResolutionRequired signalisiert, dass der Nutzer die Freundesliste nicht freigegeben hat. Sie können dann direkt PlayGamesPlatform.Instance.AskForLoadFriendsResolution aufrufen.

Sichtbarkeit der Freundesliste festlegen

Prüfe mit PlayGamesPlatform.Instance.GetFriendsListVisibility, ob der Nutzer die Freundesliste für das Spiel freigegeben hat. Mögliche Rückgabestatus sind:

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

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

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

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

Spielerprofil ansehen

Wenn du einen Spieler als Freund hinzufügen oder entfernen möchtest, verwende die Funktion zum Anzeigen und Vergleichen von Profilen. Diese Funktion löst ein Dialogfeld aus, in dem das Play Spiele-Profil des Nutzers angezeigt wird. Rufe die Funktion mit der Spieler-ID des angeforderten Spielers auf. Wenn der Spieler und sein Freund Spitznamen im Spiel haben, verwende sie in der Anfrage, um der Profiloberfläche mehr Kontext zu verleihen:

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