Znajomi w grach na Unity

Funkcja Znajomi w Grach Play umożliwia graczom tworzenie i utrzymywanie listy znajomych, która jest wspólna dla wszystkich gier. Możesz poprosić o dostęp do tej listy znajomych, aby ułatwić graczom granie w Twoją grę ze znajomymi. Więcej informacji o systemie znajomych znajdziesz na stronie z opisem koncepcji znajomych.

Zanim rozpoczniesz

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

Włączanie znajomych

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

  • Wyświetlanie znajomych: poproś o dostęp do listy znajomych gracza, aby móc dodać jego znajomych z Gier Play do listy znajomych w grze.

  • Wyświetlanie profilu gracza: umożliwia graczowi wyświetlenie profilu innego gracza w Grach Play. Jest to niezbędne, aby gracz wiedział, kto jest jego znajomym, i mógł nawiązywać kontakt z innymi graczami w Grach Play w Twojej grze. Aby wywołać wyskakujące okienko, musisz powiązać tę funkcję z elementem interfejsu. Więcej informacji znajdziesz w wytycznych dotyczących znajomych.

Wyświetlanie znajomych

Istnieją 2 sposoby wczytywania znajomych: za pomocą platformy ISocial lub bezpośrednio za pomocą platformy PlayGamesPlatform.

Wczytywanie znajomych za pomocą platformy 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");
    }

To wywołanie nie powiedzie się, jeśli bieżący gracz nie przyznał jeszcze grze uprawnień dostępu do tych informacji. Aby sprawdzić, czy wywołanie LoadFriends nie powiodło się z powodu braku zgody, użyj funkcji GetLastLoadFriendsStatus.

 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 znajomych specyficzny dla platformy. Ten interfejs zapyta gracza, czy chce udostępnić znajomych grze.

Wczytywanie znajomych za pomocą platformy PlayGamesPlatform

Innym sposobem wczytywania znajomych jest użycie funkcji 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 określa liczbę wpisów, o które należy poprosić na tej stronie. Pamiętaj, że jeśli dane w pamięci podręcznej już istnieją, zwrócony bufor może zawierać więcej niż tę liczbę. Jeśli kolekcja zawiera wystarczającą liczbę rekordów, bufor na pewno będzie zawierać co najmniej tę liczbę wpisów. Jeśli parametr forceReload jest ustawiony na true, to wywołanie wyczyści wszystkie dane w pamięci podręcznej i spróbuje pobrać najnowsze dane z serwera. Zwykle jest to używane w przypadku działań takich jak odświeżanie zainicjowane przez użytkownika. Zwykle należy ustawić wartość false, aby korzystać z zalet buforowania danych.

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

Określanie widoczności listy znajomych

Aby sprawdzić, czy użytkownik udostępnił listę znajomych grze, użyj funkcji PlayGamesPlatform.Instance.GetFriendsListVisibility. Możliwe stany zwracane:

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

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

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

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 wywołuje okno dialogowe planszy dolnej, w którym wyświetla się profil użytkownika w Grach Play. Wywołaj tę funkcję z identyfikatorem gracza, o którego profil chcesz poprosić. Jeśli gracz i znajomy mają pseudonimy w grze, użyj ich w wywołaniu, aby dodać więcej kontekstu do interfejsu profilu:

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