Znajomi w grach na Unity

Funkcja znajomych w Grach Play pozwala tworzyć i obsługiwać listę znajomych w różnych grach. Możesz poprosić o dostęp do tej listy znajomych, by ułatwić graczom granie w Twoją grę ze swoimi znajomymi. Więcej informacji na temat systemu znajomych znajdziesz na stronie z informacjami o znajomych.

Zanim zaczniesz

Informacje o najlepszych sposobach implementacji tych interfejsów API znajdziesz we wskazówkach dotyczących sprawdzonych metod.

Dodaj znajomych

Aby dodać znajomych, użyj następujących funkcji:

  • Wyświetlanie znajomych: możesz poprosić gracza o dostęp do listy znajomych, by móc dodać jego znajomych w grach do swojej listy.

  • Wyświetlanie profilu gracza: możesz zezwolić graczowi na wyświetlanie profilu innego gracza w Grach Play. Jest to niezbędne, aby gracz wiedział, kim są jego znajomi, i mógł nawiązywać kontakt z innymi użytkownikami Gier Play w Twojej grze. Musi być on powiązany z elementem interfejsu, aby wywołać wyskakujące okienko. Szczegółowe informacje znajdziesz w wytycznych dotyczących znajomych.

Wyświetl znajomych

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

Ładowanie 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");
    }

Wywołanie to nie powiedzie się, jeśli bieżący gracz jeszcze nie zezwolił grze na dostęp do tych informacji. Użyj GetLastLoadFriendsStatus, aby sprawdzić, czy nie udało się wykonać działania LoadFriends z powodu braku zgody użytkownika.

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

Gra może poprosić obecnego gracza o udostępnienie listy znajomych, dzwoniąc do 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świetla odpowiedni interfejs użytkownika udostępniania znajomym z danej platformy. Ten interfejs pyta gracza, czy chce udostępnić w grze swoich znajomych.

Wczytywanie znajomych za pomocą PlayGamesPlatform

Innym sposobem wczytywania listy znajomych jest korzystanie z aplikacji 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, których dotyczy żądanie dotyczące tej strony. Jeśli dane w pamięci podręcznej już istnieją, zwrócony bufor może zawierać więcej niż ten rozmiar. Jeśli kolekcja zawiera wystarczającą liczbę rekordów, w buforze gwarantowane jest co najmniej tylu wpisów. Jeśli forceReload ma wartość true, to wywołanie usuwa wszystkie dane z lokalnej pamięci podręcznej i próbuje pobrać najnowsze dane z serwera. Tego ustawienia można zwykle używać w przypadku takich działań jak odświeżenie inicjowane przez użytkownika. Zwykle należy go ustawić na 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. Funkcja LoadFriendsStatus.ResolutionRequired sygnalizuje, że użytkownik nie udostępnił listy znajomych, więc możesz zadzwonić bezpośrednio do: PlayGamesPlatform.Instance.AskForLoadFriendsResolution.

Określanie widoczności listy znajomych

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

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

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

  • Typ działania FriendsListVisibilityStatus.Unknown zwykle nie powinien się pojawić. Aby odświeżać dane, ustaw forceReload na true.

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

Wyświetlanie profilu gracza

Aby dodać lub usunąć gracza ze znajomych, skorzystaj z funkcji wyświetlania i porównywania profilu. Ta funkcja powoduje wyświetlenie dolnego okna z profilem użytkownika Gier Play. Wywołaj ją, podając identyfikator żądanego odtwarzacza. Jeśli gracz i znajomy mają pseudonimy w grze, użyj ich w rozmowie, aby dodać więcej informacji do interfejsu profilu:

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