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 Freundesystem findest du auf der Konzeptseite „Freunde“.

Vorbereitung

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

  • Eine Anleitung zur optimalen Implementierung dieser APIs finden Sie in den Best Practices.

Eine Anleitung zur optimalen Implementierung dieser APIs finden Sie in den Best Practices.

Freunde aktivieren

Verwenden Sie die folgenden Funktionen, um Freunde zu aktivieren:

  • Freunde ansehen: Sie können Zugriff auf die Freundesliste eines Spielers anfordern, damit Sie seine Play Games-Freunde Ihrer In-Game-Freundesliste hinzufügen können.

  • Spielerprofil ansehen: Ermöglicht es einem Spieler, das Play Spiele-Profil eines anderen Spielers anzusehen. Das ist wichtig, damit ein Spieler weiß, wer seine Freunde sind, und sich in Ihrem Spiel mit anderen Play Spiele-Spielern verbinden kann. Das muss mit einem UI-Element verknüpft werden, um das Pop-up auszulösen. Weitere Informationen finden Sie in den Richtlinien für Freunde.

Freunde ansehen

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 zum Zugriff auf diese Informationen erteilt hat. Mit GetLastLoadFriendsStatus können Sie 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 auffordern, 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 plattformspezifische Benutzeroberfläche für die Freigabe von Freunden an. In dieser Benutzeroberfläche wird der Spieler gefragt, ob er seine Freunde für das Spiel freigeben möchte.

Freunde mit PlayGamesPlatform laden

Eine weitere Möglichkeit, Freunde zu laden, ist die Verwendung von LoadFriends und LoadMoreFriends:

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 gesetzt ist, werden bei diesem Aufruf alle lokal zwischengespeicherten Daten gelöscht und 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 werden, um die Vorteile des Daten-Caching zu nutzen.

Wenn der Callback LoadFriendsStatus.LoadMore zurückgibt, müssen weitere Freunde geladen werden. LoadFriendsStatus.ResolutionRequired gibt an, dass der Nutzer die Freundesliste nicht freigegeben hat und Sie PlayGamesPlatform.Instance.AskForLoadFriendsResolution direkt aufrufen können.

Sichtbarkeit der Freundesliste festlegen

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

  • FriendsListVisibilityStatus.RequestRequired gibt an, dass Sie die Einwilligung einholen 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 ansehen

Wenn Sie einen Spieler als Freund hinzufügen oder entfernen möchten, verwenden Sie die Funktion „Profil anzeigen und vergleichen“. Diese Funktion löst ein Bottom-Sheet-Dialogfeld 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 der Freund In-Game-Spitznamen haben, verwenden Sie diese im Aufruf, um der Profil-UI mehr Kontext hinzuzufügen:

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