Amici nei giochi Unity

Play Giochi Friends consente ai giocatori di creare e gestire un elenco di amici di più giochi. Puoi richiedere l'accesso a questo elenco di amici per aiutare i giocatori a giocare con i loro amici. Consulta la pagina con il concetto di amici per ulteriori dettagli sul sistema di amici.

Prima di iniziare

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

Abilita gli amici

Per abilitare gli amici, utilizza le seguenti funzioni:

  • Visualizza amici: richiedi l'accesso all'elenco di amici di un giocatore, in modo da poter aggiungere i suoi amici di gioco al tuo elenco di amici in-game.

  • Visualizza il profilo di un giocatore: consenti a un giocatore di visualizzare il profilo Play Giochi di un altro giocatore. Ciò è essenziale per consentire al giocatore di sapere chi sono i suoi amici e di connettersi ad altri giocatori di Play Giochi nel tuo gioco. Deve essere associato a un elemento UI per attivare il popup. Per informazioni dettagliate, leggi le linee guida sugli amici.

Visualizza amici

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

Carica 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 corrente non ha ancora concesso al gioco l'autorizzazione ad accedere a queste informazioni. Utilizza GetLastLoadFriendsStatus per verificare se LoadFriends non è riuscito a causa del consenso mancante.

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

Un gioco può chiedere all'attuale giocatore di condividere l'elenco di amici chiamando il numero 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 consente di visualizzare l'interfaccia utente di condivisione degli amici specifica della piattaforma appropriata. Questa UI chiede al giocatore se vuole condividere gli amici con il gioco.

Carica 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ù dimensioni di queste. Il buffer contiene almeno questo numero di voci se la raccolta contiene un numero sufficiente di record. Se forceReload è impostato su true, la chiamata cancellerà tutti i dati memorizzati nella cache locale e tenterà di recuperare i dati più recenti dal server. Di solito viene usato per azioni come un aggiornamento avviato dall'utente. Normalmente, dovrebbe essere impostato su false per sfruttare i vantaggi della memorizzazione nella cache dei dati.

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

Determinare la visibilità dell'elenco di amici

Usa PlayGamesPlatform.Instance.GetFriendsListVisibility per controllare se l'utente ha condiviso l'elenco di amici con il gioco. I possibili stati di reso sono:

  • FriendsListVisibilityStatus.RequestRequired indica che devi chiedere il consenso.

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

  • In genere FriendsListVisibilityStatus.Unknown non dovrebbe accadere. 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 Mostra e confronta profilo. Questa funzione attiva una finestra di dialogo nel riquadro inferiore che mostra il profilo Play Giochi dell'utente; richiama la funzione con l'ID giocatore del player richiesto. Se il giocatore e l'amico hanno nickname in-game, utilizzali nella chiamata per aggiungere ulteriore contesto all'interfaccia utente del profilo:

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