Tính năng bạn bè trong Play Games cho phép người chơi tạo và duy trì danh sách bạn bè trên nhiều trò chơi. Bạn có thể yêu cầu quyền truy cập vào danh sách bạn bè này để giúp người chơi chơi trò chơi của bạn với bạn bè của họ. Vui lòng xem trang Khái niệm về bạn bè để biết thêm thông tin chi tiết về hệ thống bạn bè.
Trước khi bắt đầu
Thiết lập dự án và trình bổ trợ trong Google Play Games cho Unity. Để biết thông tin chi tiết, vui lòng xem Hướng dẫn bắt đầu sử dụng.
Vui lòng xem nguyên tắc về các phương pháp hay nhất để được hướng dẫn cách triển khai hiệu quả nhất cho các API này.
Vui lòng xem nguyên tắc về các phương pháp hay nhất để được hướng dẫn cách triển khai hiệu quả nhất các API này.
Cho phép bạn bè
Để cho phép bạn bè, hãy sử dụng các chức năng sau:
Xem bạn bè: Yêu cầu quyền truy cập vào danh sách bạn bè của người chơi, từ đó thêm bạn bè chơi cùng của họ vào danh sách bạn bè trong trò chơi của bạn.
Xem hồ sơ người chơi: Cho phép người chơi xem hồ sơ của người chơi khác trong Play Games. Việc này cần thiết để người chơi biết được bạn bè của họ là ai, đồng thời có thể kết nối với những người chơi Play Games khác trong trò chơi của bạn. Bạn cần liên kết với một phần tử giao diện người dùng để kích hoạt cửa sổ bật lên. Vui lòng xem nguyên tắc về bạn bè để biết thêm thông tin chi tiết.
Xem thông tin bạn bè
Có hai cách để tải bạn bè là sử dụng khung ISocial
hoặc
trực tiếp với PlayGamesPlatform
.
Tải bạn bè bằng khung 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");
}
Tuy nhiên, lệnh gọi này sẽ không thành công nếu người chơi hiện tại chưa cấp quyền cho trò chơi để truy cập vào thông tin này. Sử dụng
GetLastLoadFriendsStatus
để kiểm tra xem liệu LoadFriends
có bị lỗi do thiếu
sự đồng ý hay không.
PlayGamesPlatform.Instance.GetLastLoadFriendsStatus((status) => {
// Check for consent
if (status == LoadFriendsStatus.ResolutionRequired) {
// Ask for resolution.
}
});
Một trò chơi có thể yêu cầu người chơi hiện tại chia sẻ danh sách bạn bè bằng cách gọi
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.
}
});
Hàm này sẽ hiển thị giao diện người dùng chia sẻ bạn bè phù hợp trên nền tảng cụ thể. Giao diện người dùng này sẽ hỏi người chơi xem liệu họ có muốn chia sẻ bạn bè của mình với trò chơi hay không.
Tải bạn bè bằng PlayGamesPlatform
Ngoài ra, còn một cách khác để tải bạn bè là sử dụng LoadFriends
và 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.
});
Tham số pageSize
đại diện cho số lượng mục nhập cần yêu cầu cho trang này.
Vui lòng lưu ý nếu dữ liệu lưu vào bộ nhớ đệm đã tồn tại sẵn, thì bộ đệm trả về phải chứa nhiều hơn dung lượng này. Dung lượng bộ đệm đảm bảo chứa được ít nhất là các mục này nếu bộ sưu tập đã hết chỗ chứa bản ghi. Nếu bạn đặt forceReload
thành true
, lệnh gọi này sẽ xóa mọi dữ liệu đã lưu vào bộ nhớ đệm trên máy và cố gắng tìm nạp dữ liệu mới nhất từ máy chủ. Phương thức này thường được dùng cho các thao tác như làm mới do người dùng thực hiện. Thông thường, bạn nên đặt giá trị này thành false
để đạt được lợi thế của bộ nhớ đệm dữ liệu.
Nếu lệnh gọi lại trả về LoadFriendsStatus.LoadMore
, thì sẽ có nhiều bạn bè hơn để tải. LoadFriendsStatus.ResolutionRequired
cho biết người dùng chưa chia sẻ danh sách bạn bè, và bạn có thể gọi trực tiếp phương thức
PlayGamesPlatform.Instance.AskForLoadFriendsResolution
.
Xác định chế độ hiển thị danh sách bạn bè
Sử dụng PlayGamesPlatform.Instance.GetFriendsListVisibility
để kiểm tra xem liệu người dùng có chia sẻ danh sách bạn bè với trò chơi hay không. Các trạng thái trả lại có thể xảy ra là:
FriendsListVisibilityStatus.RequestRequired
cho biết bạn phải yêu cầu sự đồng ý.FriendsListVisibilityStatus.Visible
cho biết thao tác tải danh sách bạn bè sẽ thành công.FriendsListVisibilityStatus.Unknown
thường không xảy ra. Bạn có thể đặtforceReload
thành giá trị true (đúng) để làm mới dữ liệu.
PlayGamesPlatform.Instance.GetFriendsListVisibility(forceReload, (friendsListVisibilityStatus) => {});
Xem hồ sơ người chơi
Để thêm hoặc xóa một người chơi trong danh sách bạn bè, hãy sử dụng hàm hiển thị và so sánh hồ sơ. Hàm này kích hoạt một hộp thoại ở bảng dưới cùng hiển thị hồ sơ Play Games của người dùng; gọi hàm với mã người chơi của người chơi được yêu cầu. Nếu người chơi và bạn bè đều có biệt hiệu trong trò chơi, hãy sử dụng biệt hiệu đó trong lệnh gọi để thêm ngữ cảnh vào giao diện người dùng của hồ sơ:
PlayGamesPlatform.Instance.ShowCompareProfileWithAlternativeNameHintsUI(
mFirstFriendId, /* otherPlayerInGameName= */ null, /* currentPlayerInGameName= */ null,
(result) => {
// Profile comparison view has closed.
});