Znajomi w grach na Unity

Znajomi w Grach Play umożliwiają graczom tworzenie i prowadzenie listy znajomych w różnych grach. Możesz poprosić o dostęp do tej listy znajomych, aby ułatwić graczom wspólną grę ze znajomymi. Więcej informacji o systemie znajomych znajdziesz na stronie z informacjami o znajomych.

Zanim rozpoczniesz

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

Włącz znajomych

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

  • Wyświetlanie znajomych: prośba o dostęp do listy znajomych gracza, aby można było dodać jego znajomych z Gier Play do listy znajomych w grze.

  • Wyświetlanie profilu gracza: umożliwia graczowi wyświetlanie profilu innego gracza w Grach Play. Jest to niezbędne, aby gracz wiedział, kto jest jego znajomym, i mógł łączyć się z innymi użytkownikami Gier Play w Twojej grze. Musi być on powiązany z elementem interfejsu, aby wywoływać wyskakujące okienko. Szczegółowe informacje znajdziesz w wytycznych dotyczących znajomych.

Wyświetlanie znajomych

Znajomych można wczytać na 2 sposoby: za pomocą platformy ISocial lub bezpośrednio za pomocą 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");
    }

Jednak to wywołanie zakończy się niepowodzeniem, jeśli bieżący gracz nie przyznał jeszcze grze uprawnień dostępu do tych informacji. Użyj tego narzędzia, aby sprawdzić, czy LoadFriends nie powiodło się z powodu braku zgody użytkownika.GetLastLoadFriendsStatus

 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, 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. W tym interfejsie użytkownik jest pytany, czy chce udostępnić grze listę znajomych.

Wczytywanie znajomych za pomocą PlayGamesPlatform

Innym sposobem wczytywania 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 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 danych niż ten rozmiar. Bufor zawiera co najmniej tyle wpisów, ile wynosi ta wartość, jeśli kolekcja zawiera wystarczającą liczbę rekordów. Jeśli parametr forceReload ma wartość true, to wywołanie wyczyści wszystkie dane zapisane lokalnie w pamięci podręcznej i spróbuje pobrać najnowsze dane z serwera. Jest to zwykle używane w przypadku działań takich jak odświeżanie zainicjowane przez użytkownika. Zwykle powinna być ustawiona 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. LoadFriendsStatus.ResolutionRequired oznacza, że użytkownik nie udostępnił listy znajomych i możesz bezpośrednio zadzwonić pod numer PlayGamesPlatform.Instance.AskForLoadFriendsResolution.

Określanie widoczności listy znajomych

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

  • FriendsListVisibilityStatus.RequestRequired oznacza, że musisz poprosić użytkowników 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ć wartość forceReload na true.

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

Wyświetlanie profilu gracza

Aby dodać lub usunąć gracza ze znajomych, użyj funkcji wyświetlania i porównywania profili. Ta funkcja wywołuje okno u dołu ekranu, w którym wyświetla się profil użytkownika w Grach Play. Wywołaj tę funkcję, podając identyfikator gracza, którego profil chcesz wyświetlić. Jeśli gracz i jego 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.
});