Amici nei giochi Unity

Amici di Play Giochi consente ai giocatori di creare e gestire un elenco di amici valido per tutti i giochi. Puoi richiedere l'accesso a questo elenco di amici per aiutare i tuoi giocatori a giocare al tuo gioco con i loro amici. Per maggiori dettagli sul sistema di amici, consulta la pagina relativa al concetto di amici.

Prima di iniziare

Consulta le linee guida sulle best practice per istruzioni sul modo migliore per implementare queste API.

Attivare gli amici

Per attivare gli amici, utilizza le seguenti funzioni:

  • Visualizza gli amici: richiedi l'accesso all'elenco di amici di un giocatore, in modo da poter aggiungere i suoi amici di Play Giochi all'elenco di amici all'interno del gioco.

  • Visualizza il profilo di un giocatore: consente a un giocatore di visualizzare il profilo Play Giochi di un altro giocatore. È essenziale che un giocatore sappia chi sono i suoi amici e possa connettersi ad altri giocatori di Play Games nel tuo gioco. Questa opzione dovrà essere collegata a un elemento dell'interfaccia utente per attivare il popup. Per maggiori dettagli, consulta le linee guida sugli amici.

Visualizzare gli amici

Esistono due modi per caricare gli amici: utilizzando il framework ISocial o direttamente con PlayGamesPlatform.

Caricare gli amici con il 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");
    }

Tuttavia, questa chiamata non andrà a buon fine se il giocatore attuale non ha ancora concesso al gioco l'autorizzazione ad accedere a queste informazioni. Utilizza GetLastLoadFriendsStatus per verificare se LoadFriends non è riuscito a causa della mancanza di consenso.

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

Un gioco può chiedere al giocatore attuale di condividere l'elenco di amici chiamando 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.
    }
});

Questa funzione mostrerà l'interfaccia utente di condivisione degli amici specifica della piattaforma appropriata. Questa UI chiede al giocatore se vuole condividere i suoi amici con il gioco.

Caricare gli amici con PlayGamesPlatform

Un altro modo per caricare gli amici è utilizzare 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.
});

Il parametro pageSize rappresenta il numero di voci da richiedere per questa pagina. Tieni presente che, se esistono già dati memorizzati nella cache, il buffer restituito potrebbe contenere più di questa dimensione. È garantito che il buffer contenga almeno questo numero di voci se la raccolta contiene un numero sufficiente di record. Se forceReload è impostato su true, questa chiamata cancellerà tutti i dati memorizzati nella cache locale e tenterà di recuperare i dati più recenti dal server. Questa opzione viene in genere utilizzata per azioni come l'aggiornamento avviato dall'utente. In genere, questo valore deve essere impostato su false per sfruttare i vantaggi della memorizzazione nella cache dei dati.

Se il callback restituisce LoadFriendsStatus.LoadMore, significa che ci sono altri amici da caricare. LoadFriendsStatus.ResolutionRequired indica che l'utente non ha condiviso l'elenco di amici e puoi chiamare direttamente PlayGamesPlatform.Instance.AskForLoadFriendsResolution.

Determinare la visibilità dell'elenco di amici

Utilizza PlayGamesPlatform.Instance.GetFriendsListVisibility per verificare se l'utente ha condiviso l'elenco di amici con il gioco. I possibili stati di restituzione sono:

  • FriendsListVisibilityStatus.RequestRequired indica che devi chiedere il consenso.

  • FriendsListVisibilityStatus.Visible indica che il caricamento dell'elenco di amici dovrebbe riuscire.

  • FriendsListVisibilityStatus.Unknown in genere non dovrebbe verificarsi. Puoi impostare forceReload su true per aggiornare i dati.

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

Visualizzare il profilo di un giocatore

Per aggiungere o rimuovere un giocatore come amico, utilizza la funzione di visualizzazione e confronto dei profili. Questa funzione attiva una finestra di dialogo del riquadro inferiore che mostra il profilo Play Games dell'utente; chiama la funzione con l'ID giocatore del giocatore richiesto. Se il giocatore e l'amico hanno soprannomi in-game, utilizzali nella chiamata per aggiungere più contesto all'interfaccia utente del profilo:

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