Freunde in Unity-Spielen

Mit Play Games-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 Freunde.

Vorbereitung

  • Richten Sie Ihr Projekt und das Google Play Games-Plug-in für Unity ein. Weitere Informationen finden Sie unter dem Leitfaden Erste Schritte.

  • 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.

Freunde aktivieren

Verwenden Sie die folgenden Funktionen, um Freunde zu aktivieren:

  • Freunde ansehen: Fordern Sie Zugriff auf die Freundesliste eines Spielers an, damit Sie seine Play Games Freunde Ihrer Freundesliste im Spiel hinzufügen können.

  • Spielerprofil ansehen: Ermöglichen Sie einem Spieler, das Play Games-Profil eines anderen Spielers anzusehen. Das ist wichtig, damit ein Spieler weiß, wer seine Freunde sind, und sich in Ihrem Spiel mit anderen Play Games-Spielern verbinden kann. Diese Funktion muss mit einem UI-Element verknüpft sein, 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 ü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 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 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 UI für die Freigabe von Freunden an. In dieser UI 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 Einträge 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 im Cache gespeicherten 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 gesetzt sein, um die Vorteile der Datenzwischenspeicherung zu nutzen.

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

Sichtbarkeit der Freundesliste festlegen

Verwenden Sie 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 um Einwilligung bitten müssen.

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

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

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

Spielerprofil ansehen

Verwenden Sie die Funktion zum Anzeigen und Vergleichen von Profilen, um einen Spieler als Freund hinzuzufügen oder zu entfernen. Diese Funktion löst eine Ansicht am unteren Rand aus, in der das Play Games-Profil des Nutzers angezeigt wird. Rufen Sie die Funktion mit der Spieler-ID des angeforderten Spielers auf. Wenn der Spieler und der Freund Spitznamen im Spiel 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.
});