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