Unity 遊戲中的好友

Play 遊戲的好友可讓玩家建立並維持一個橫跨遊戲的好友 請參考閱讀清單,進一步瞭解 如何選擇 Kubeflow Pipelines SDK 或 TFX您可以要求存取這份好友名單,讓玩家與朋友一起玩遊戲。詳情請參閱 好友概念頁面 ,瞭解好友系統的詳細資訊。

事前準備

  • 設定專案和 Unity 專用 Google Play 遊戲外掛程式。詳情請參閱入門指南

  • 請參閱最佳做法指南, 實作這些 API 的最佳方式說明。

詳情請參閱 最佳做法指南,瞭解如何在 以最有效的方式實作這些 API

啟用好友

若要啟用好友,請用以下函式:

  • 查看好友: 要求存取某位玩家的好友名單,以便新增對方的 Play 遊戲 或是連結遊戲內的好友名單

  • 檢視玩家的個人資料: 允許玩家檢視其他玩家的 Play 遊戲個人資料。如此一來,玩家才能得知好友身分,並在遊戲中與其他 Play 遊戲玩家互動。必須連結到 UI 元素,才能 觸發彈出式視窗詳情請參閱 好友規範

檢視好友

載入好友的方式有兩種,您可以使用 ISocial 架構,或直接使用 PlayGamesPlatform

使用 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");
    }

但是,如果目前的玩家尚未授予權限,這項呼叫就會失敗 權限。使用 GetLastLoadFriendsStatus可確認是否因遺漏 LoadFriends 而失敗 同意。

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

遊戲可以藉由呼叫的方式,要求目前玩家分享好友名單 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.
    }
});

這段函式可以顯示該平台適用的好友分享 UI。 這個 UI 會詢問玩家是否想要跟遊戲分享好友。

使用 PlayGamesPlatform 載入好友

您也可以使用 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.
});

pageSize 參數代表要求這個網頁的項目數量。 請注意,如果已有快取資料,傳回的緩衝區可能包含超過這個數量的項目。如果集合中有足夠的記錄,緩衝區保證會包含這個數量以上的項目。如果將 forceReload 設為 true, 這項呼叫會清除所有本機快取資料,並嘗試擷取最新的 伺服器的資料。這通常用於使用者這類動作 開始重新整理。通常應設為 false 才能取得 資料快取的優點

如果回呼傳回 LoadFriendsStatus.LoadMore,即表示 載入好友清單。LoadFriendsStatus.ResolutionRequired 表示使用者 尚未分享好友名單,您可以直接撥打 PlayGamesPlatform.Instance.AskForLoadFriendsResolution

判斷好友名單的瀏覽權限

使用 PlayGamesPlatform.Instance.GetFriendsListVisibility 查看使用者是否 已和遊戲分享好友名單。可能回傳的狀態有:

  • FriendsListVisibilityStatus.RequestRequired 表示您必須要求 同意。

  • FriendsListVisibilityStatus.Visible 表示正在載入好友名單 應會成功

  • FriendsListVisibilityStatus.Unknown 通常不應該發生。您可以設定 forceReload 設為 true,即可重新整理資料。

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

檢視玩家個人資料

如果想新增或移除好友,請使用 ShowCompareProfile 函式。這個函式會觸發底部功能表對話方塊,並顯示 Play 遊戲 使用者的個人資料;使用請求的玩家 ID 呼叫函式 廣告。若玩家和好友都有遊戲內暱稱,請在呼叫中使用這些暱稱,將更多背景資訊加入個人資料 UI:

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