Amigos em jogos do Unity

Com o Play Games Friends, os jogadores podem criar e manter uma mesma lista de amigos em vários jogos. Você pode solicitar acesso a essa lista para ajudar os usuários a jogar com pessoas que eles conhecem. Consulte a Página de conceito de amigos para mais detalhes sobre o sistema de amizades.

Antes de começar

Consulte as diretrizes de práticas recomendadas para instruções sobre a melhor maneira de implementar essas APIs.

Ativar amigos

Para ativar recursos de amigos, use as funções (em inglês) abaixo:

  • Conferir amigos: pede acesso à lista de amigos de um jogador para poder adicionar as pessoas que ele conhece no Play Games à lista do jogo.

  • Acessar um perfil de jogador: permite que um jogador confira o perfil de outro usuário no Play Games. Isso é essencial para que o usuário saiba quem são os amigos dele e possa se conectar a outros jogadores do Play Games no seu jogo. Você precisa vincular essa função a um elemento de IU para acionar o pop-up. Consulte as diretrizes de amizade para mais detalhes.

Conferir amigos

Há duas maneiras de carregar amigos: usando o framework ISocial ou diretamente com a PlayGamesPlatform.

Carregar amigos com o framework 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");
    }

Essa chamada vai falhar se o jogador atual ainda não tiver concedido permissão ao jogo para acessar essas informações. Use GetLastLoadFriendsStatus para verificar se a função LoadFriends falhou devido à ausência do consentimento.

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

Um jogo pode pedir que o jogador atual compartilhe a lista de amigos chamando 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.
    }
});

Essa função vai mostrar a IU adequada para compartilhamento de amigos específica da plataforma. A IU pergunta ao jogador se ele quer compartilhar os amigos com o jogo.

Carregar amigos com a PlayGamesPlatform

Outra maneira de carregar amigos é usar LoadFriends e 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.
});

O parâmetro pageSize representa o número de entradas que vão ser solicitadas na página. Se os dados em cache já existirem, talvez o buffer retornado contenha mais do que esse tamanho. O buffer vai conter pelo menos esse número de entradas se a coleção tiver registros suficientes. Se forceReload for definido como true, a chamada vai apagar todos os dados armazenados em cache localmente e tentar buscar os dados mais recentes do servidor. Isso geralmente é usado para ações como uma atualização iniciada pelo usuário. Normalmente, esse elemento precisa ser definido como false para aproveitar as vantagens do armazenamento em cache dos dados.

Se o callback retornar LoadFriendsStatus.LoadMore, significa que há mais amigos para carregar. LoadFriendsStatus.ResolutionRequired sinaliza que o usuário não compartilhou a lista de amigos e você pode chamar PlayGamesPlatform.Instance.AskForLoadFriendsResolution diretamente.

Determinar a visibilidade da lista de amigos

Use PlayGamesPlatform.Instance.GetFriendsListVisibility para conferir se o usuário compartilhou a lista de amigos com o jogo. Estes são os possíveis status de retorno:

  • FriendsListVisibilityStatus.RequestRequired indica que você precisa solicitar consentimento.

  • FriendsListVisibilityStatus.Visible indica que o carregamento da lista de amigos vai ser concluído.

  • FriendsListVisibilityStatus.Unknown geralmente não acontece. Defina forceReload como "true" para atualizar os dados.

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

Acessar um perfil de jogador

Para adicionar ou remover um jogador como amigo, use a função de mostrar e comparar perfis. Ela aciona uma caixa de diálogo de página inferior com o perfil do usuário no Play Games. Chame a função com o ID do jogador solicitado. Se o jogador e o amigo tiverem apelidos no jogo, use-os na chamada para dar mais contexto à IU do perfil:

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