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ć 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ł, 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ł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 GetLastLoadFriendsStatus, aby sprawdzić, czy LoadFriends nie powiodło się z powodu braku zgody.

 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 LoadFriendsLoadMoreFriends:

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 chcesz 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 pozycji, o ile 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 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. 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 to:

  • 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 profilu. Ta funkcja wywołuje okno u dołu ekranu, w którym wyświetlany jest profil użytkownika w Grach Play. Wywołaj ją, 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.
});