Znajomi w grach na Unity

Znajomości w Gierach Play umożliwiają graczom tworzenie i utrzymywanie listy znajomych w różnych grach. Możesz poprosić o dostęp do tej listy znajomych, aby ułatwić graczom wspólne granie ze znajomymi. Więcej informacji o systemie znajomych znajdziesz na stronie z konceptem znajomych.

Zanim rozpoczniesz

Instrukcje dotyczące najlepszego sposobu implementacji tych interfejsów API znajdziesz we wytycznych dotyczących sprawdzonych metod.

Włącz znajomych

Aby włączyć znajomych, użyj tych funkcji:

  • Wyświetlanie znajomych: wyślij prośbę o dostęp do listy znajomych innego gracza, aby móc dodać jego znajomych do listy znajomych w grze.

  • Wyświetlanie profilu gracza: pozwala graczowi wyświetlić profil innego gracza w Grach Play. Jest to niezbędne, aby gracz wiedział, kim są jego znajomi, i mógł łączyć się z innymi graczami w Grach Play. Musisz go powiązać z elementem interfejsu użytkownika, aby wywołać wyskakujące okienko. Więcej informacji znajdziesz we wskazówkach dotyczących znajomych.

Wyświetlanie znajomych

Znajomych można wczytywać na 2 sposoby: za pomocą frameworka ISocial lub bezpośrednio za pomocą PlayGamesPlatform.

Ładowanie znajomych za pomocą frameworka ISocial

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

Jednak wywołanie zakończy się niepowodzeniem, jeśli bieżący gracz nie zezwolił jeszcze grze na dostęp do tych informacji. Użyj opcji GetLastLoadFriendsStatus, aby sprawdzić, czy błąd LoadFriends wystąpił z powodu braku zgody.

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

Gra może poprosić bieżącego gracza o udostępnienie listy znajomych, wywołując funkcję AskForLoadFriendsResolution.

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.
    }
});

Ta funkcja wyświetli odpowiedni interfejs udostępniania znajomym na danej platformie. To UI pyta gracza, czy chce udostępnić grę znajomym.

Ładowanie znajomych za pomocą PlayGamesPlatform

Innym sposobem wczytania znajomych jest użycie LoadFriends i 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.
});

Parametr pageSize to liczba wpisów do przesłania na tej stronie. Pamiętaj, że jeśli dane w pamięci podręcznej już istnieją, zwrócony bufor może mieć większy rozmiar. Jeśli kolekcja zawiera wystarczającą liczbę rekordów, bufor będzie zawierać co najmniej tę liczbę wpisów. Jeśli forceReload ma wartość true, ten wywołanie spowoduje wyczyszczenie wszystkich danych z lokalnej pamięci podręcznej i próbę pobrania najnowszych danych z serwera. Jest to zwykle używane do wykonywania takich działań jak odświeżanie inicjowane przez użytkownika. Zwykle wartość tego parametru powinna wynosić false, aby korzystać z zalet pamięci podręcznej danych.

Jeśli wywołanie zwrotne zwróci wartość LoadFriendsStatus.LoadMore, oznacza to, że jest więcej znajomych do załadowania. LoadFriendsStatus.ResolutionRequired oznacza, że użytkownik nie udostępnił listy znajomych i można do niego zadzwonić bezpośrednio.PlayGamesPlatform.Instance.AskForLoadFriendsResolution

Określanie widoczności listy znajomych

Użyj PlayGamesPlatform.Instance.GetFriendsListVisibility, aby sprawdzić, czy użytkownik udostępnił listę znajomych grze. Możliwe stany zwrotu:

  • FriendsListVisibilityStatus.RequestRequired oznacza, że musisz poprosić o zgodę.

  • FriendsListVisibilityStatus.Visible oznacza, że wczytanie listy znajomych powinno się udać.

  • FriendsListVisibilityStatus.Unknown nie powinno się zdarzyć. Aby odświeżyć dane, możesz ustawić parametr forceReload na wartość „PRAWDA”.

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

Wyświetlanie profilu gracza

Aby dodać lub usunąć gracza jako znajomego, użyj funkcji wyświetlania i porównywania profilu. Ta funkcja uruchamia wyskakujące okienko z profilem użytkownika w Google Play Games. Wywołaj funkcję, podając identyfikator gracza. Jeśli gracz i jego znajomy mają pseudonimy w grze, użyj ich w rozmowie, aby dodać więcej kontekstu do interfejsu profilu:

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