Amigos en juegos de Unity

La función Amigos de Play Juegos permite que los jugadores creen y mantengan una lista de amigos para todos los juegos. Puedes solicitar acceso a esta lista de amigos para ayudar a los jugadores a que disfruten de tu juego con sus amigos. Consulta la página de conceptos de Amigos a fin de obtener más detalles sobre el sistema de amigos.

Antes de comenzar

Consulta los lineamientos de prácticas recomendadas para obtener instrucciones sobre la mejor manera de implementar estas API.

Cómo habilitar los amigos

Si deseas habilitar los amigos, usa las siguientes funciones:

  • Ver amigos: Solicita acceso a la lista de amigos de un jugador, de modo que puedas agregar a sus amigos de Play Juegos a la lista de amigos del juego.

  • Ver el perfil de un jugador: Permite que un jugador vea el perfil de Play Juegos de otro jugador. Esto es esencial para que un jugador sepa quiénes son sus amigos y pueda conectarse con otros jugadores de Play Juegos. Este deberá vincularse a un elemento de la IU a fin de activar la ventana emergente. Consulta los lineamientos de amigos para obtener más detalles.

Cómo ver los amigos

Existen dos maneras de cargar los amigos, ya sea usando el framework de ISocial o directamente con PlayGamesPlatform.

Carga tus amigos con el framework de 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");
    }

Sin embargo, la llamada fallará si el jugador actual todavía no le otorgó permiso al juego para que acceda a esta información. Usa GetLastLoadFriendsStatus a fin de verificar si LoadFriends falló debido por falta de consentimiento.

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

Un juego puede llamar a AskForLoadFriendsResolution y pedirle al jugador actual que comparta la lista de amigos.

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.
    }
});

Esta función mostrará la IU adecuada de uso compartido de amigos específicos de la plataforma. Esta IU le pregunta al jugador si desea compartir a sus amigos con el juego.

Carga tus amigos con PlayGamesPlatform

Otra forma de cargar los amigos es usar LoadFriends y 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.
});

El parámetro pageSize representa la cantidad de entradas que se deben solicitar para esta página. Ten en cuenta que, si ya existen datos almacenados en caché, el búfer que se muestra puede contener datos de un tamaño mayor. Se garantiza que el búfer contendrá al menos esta cantidad de entradas si la colección contiene registros suficientes. Si forceReload está configurado como true, esta llamada borrará cualquier dato almacenado en caché local y tratará de recuperar los datos más recientes del servidor. Normalmente, se usa para acciones como una actualización iniciada por el usuario. Por lo general, se debe configurar como false a fin de aprovechar las ventajas del almacenamiento en caché de datos.

Si la devolución de llamada muestra LoadFriendsStatus.LoadMore, significa que hay más amigos por cargar. LoadFriendsStatus.ResolutionRequired indica que el usuario no compartió la lista de amigos, y que puedes llamar directamente a PlayGamesPlatform.Instance.AskForLoadFriendsResolution.

Determina la visibilidad de la lista de amigos

Usa PlayGamesPlatform.Instance.GetFriendsListVisibility a los efectos de comprobar si el usuario compartió la lista de amigos con el juego. Estos son los posibles estados que se muestran:

  • FriendsListVisibilityStatus.RequestRequired indica que debes solicitar el consentimiento.

  • FriendsListVisibilityStatus.Visible indica que la carga de la lista de amigos debería ser exitosa.

  • Por lo general, FriendsListVisibilityStatus.Unknown no debería ocurrir. Puedes establecer forceReload como verdadero para actualizar los datos.

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

Cómo ver un perfil de jugador

Si deseas agregar o quitar a un jugador como amigo, usa la función para mostrar y comparar perfiles. Esta función activa un diálogo de hoja inferior que muestra el perfil de Play Juegos del usuario. Llama a la función con el ID del jugador solicitado. Si el jugador y el amigo tienen sobrenombres en el juego, úsalos en la llamada para agregar más contexto a la IU del perfil:

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