ฟีเจอร์ "เพื่อน" ของ Play Games ให้ผู้เล่นสร้างและรักษาเพื่อนที่เล่นเกมข้ามเกมได้ รายการ คุณสามารถขอสิทธิ์เข้าถึงรายชื่อเพื่อนเพื่อช่วยผู้เล่นเล่นเกม กับเพื่อนๆ ของพวกเขา โปรดดู หน้าแนวคิดของเพื่อน เพื่อดูรายละเอียดเพิ่มเติมเกี่ยวกับระบบของเพื่อน
ก่อนจะเริ่มต้น
ตั้งค่าโปรเจ็กต์และปลั๊กอิน Google Play Games สำหรับ Unity โปรดดูรายละเอียดที่หัวข้อ คู่มือเริ่มต้นใช้งาน
ดูหลักเกณฑ์แนวทางปฏิบัติที่ดีที่สุดสำหรับ วิธีที่ดีที่สุดในการใช้งาน API เหล่านี้
โปรดดู หลักเกณฑ์แนวทางปฏิบัติแนะนำสำหรับวิธีการใน วิธีที่ดีที่สุดในการใช้งาน API เหล่านี้
เปิดใช้งานเพื่อน
หากต้องการเปิดใช้งานเพื่อน ให้ใช้ฟังก์ชันต่อไปนี้:
ดูเพื่อน: ขอสิทธิ์เข้าถึงรายชื่อเพื่อนของผู้เล่นเพื่อให้คุณเพิ่ม Play Games ได้ ไปยังรายชื่อเพื่อนในเกม
ดูโปรไฟล์ผู้เล่น โดยทำดังนี้ อนุญาตให้ผู้เล่นดูโปรไฟล์ Play Games ของผู้เล่นรายอื่น นี่คือ จำเป็นเพื่อให้ผู้เล่นรู้ว่าเพื่อนของตนเป็นใครและเชื่อมต่อกับผู้เล่นคนอื่นๆ ได้ ผู้เล่น Play Games ในเกมของคุณ ซึ่งจะต้องเชื่อมโยงกับองค์ประกอบ UI เพื่อ เรียกป๊อปอัป โปรดดู หลักเกณฑ์สำหรับเพื่อน เพื่อดูรายละเอียด
ดูเพื่อน
มี 2 วิธีในการโหลดเพื่อน คือการใช้เฟรมเวิร์ก 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
เพื่อเพิ่มค่า
ข้อดีของการแคชข้อมูล
หาก Callback แสดง LoadFriendsStatus.LoadMore
แสดงว่ามี
ให้เพื่อนโหลด LoadFriendsStatus.ResolutionRequired
สัญญาณที่ผู้ใช้
ยังไม่ได้แชร์รายชื่อเพื่อน และคุณสามารถโทรหาได้โดยตรง
PlayGamesPlatform.Instance.AskForLoadFriendsResolution
กำหนดระดับการเข้าถึงรายชื่อเพื่อน
ใช้ PlayGamesPlatform.Instance.GetFriendsListVisibility
เพื่อตรวจสอบว่าผู้ใช้
ได้แชร์รายชื่อเพื่อนกับเกม สถานะการคืนสินค้าที่เป็นไปได้มีดังนี้
FriendsListVisibilityStatus.RequestRequired
ระบุว่าคุณต้องขอ ความยินยอมFriendsListVisibilityStatus.Visible
บ่งบอกว่ากำลังโหลดรายชื่อเพื่อน ควรประสบความสำเร็จFriendsListVisibilityStatus.Unknown
ไม่ควรเกิดขึ้นตามปกติ คุณสามารถกำหนดforceReload
เป็น true เพื่อรีเฟรชข้อมูล
PlayGamesPlatform.Instance.GetFriendsListVisibility(forceReload, (friendsListVisibilityStatus) => {});
ดูโปรไฟล์ผู้เล่น
หากต้องการเพิ่มหรือนำผู้เล่นออกจากการเป็นเพื่อน ให้ใช้โปรไฟล์แสดงและเปรียบเทียบ ฟังก์ชันนี้จะทริกเกอร์กล่องโต้ตอบ Bottom Sheet ที่แสดง Play Games โปรไฟล์ของผู้ใช้ เรียกฟังก์ชันด้วยรหัสโปรแกรมเล่น โปรแกรมเล่นวิดีโอ หากผู้เล่นและเพื่อนมีชื่อเล่นในเกม ให้ใช้ชื่อเล่นเหล่านั้นในการโทร เพิ่มบริบทลงใน UI ของโปรไฟล์:
PlayGamesPlatform.Instance.ShowCompareProfileWithAlternativeNameHintsUI(
mFirstFriendId, /* otherPlayerInGameName= */ null, /* currentPlayerInGameName= */ null,
(result) => {
// Profile comparison view has closed.
});