Play 遊戲的好友可讓玩家建立並維持一個橫跨遊戲的好友 請參考閱讀清單,進一步瞭解 如何選擇 Kubeflow Pipelines SDK 或 TFX您可以要求存取這份好友名單,讓玩家與朋友一起玩遊戲。詳情請參閱 好友概念頁面 ,瞭解好友系統的詳細資訊。
事前準備
詳情請參閱 最佳做法指南,瞭解如何在 以最有效的方式實作這些 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 載入好友
您也可以使用 LoadFriends
和 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.
});
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.
});