שירות Play Games Friends מאפשר לשחקנים ליצור ולנהל רשימת חברים במשחקים שונים. אפשר לבקש גישה לרשימת החברים הזו כדי לעזור לשחקנים לשחק במשחק שלך עם החברים שלהם. בדף הקונספט של החברים מוסבר בהרחבה על מערכת החברים.
לפני שמתחילים
מגדירים את הפרויקט ואת הפלאגין של Google Play Games ל-Unity. פרטים נוספים זמינים במדריך למתחילים.
בהנחיות לשיטות מומלצות מפורטות הוראות להטמעה הטובה ביותר של ממשקי ה-API האלה.
בהנחיות לשיטות מומלצות מוסבר איך מטמיעים בצורה הטובה ביותר את ממשקי ה-API האלה.
הפעלת התכונה 'חברים'
כדי להפעיל את החברים, יש להשתמש בפונקציות הבאות:
הצגת החברים: אפשר לבקש גישה לרשימת החברים של שחקן כדי להוסיף את החברים שלו במשחקים לרשימת החברים שלכם במשחק.
הצגת פרופיל שחקן: שחקן יכול להציג את הפרופיל של שחקן אחר ב-Play Games. הפעולה הזו חיונית כדי שהשחקנים יידעו מי החברים שלהם ויוכלו להתחבר לשחקנים אחרים ב-Play Games במשחק. כדי להפעיל את החלון הקופץ, צריך לקשר אותו לרכיב בממשק המשתמש. פרטים נוספים זמינים בהנחיות בנושא חברים.
הצגת החברים
יש שתי דרכים לטעון חברים: באמצעות המסגרת 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.
}
});
הפונקציה הזו תציג את ממשק המשתמש המתאים לשיתוף חברים בפלטפורמה הספציפית. בממשק המשתמש הזה, השחקן נשאל אם הוא רוצה לשתף את רשימת החברים שלו עם המשחק.
טעינת חברים באמצעות 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
מייצג את מספר הרשומות שצריך לבקש לדף הזה.
שימו לב: אם כבר יש נתונים ששמורים במטמון, יכול להיות שהמאגר המוחזר יכיל יותר מ-1000 פריטים. מובטח שהמאגר הזמני יכלול לפחות את המספר הזה של רשומות, אם האוסף מכיל מספיק רשומות. אם הערך של 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) => {});
הצגת פרופיל של שחקן
כדי להוסיף או להסיר שחקן כחבר, משתמשים בתכונה 'הצגת הפרופיל והשוואה'. הפונקציה הזו מפעילה תיבת דו-שיח בחלק התחתון של המסך שבה מוצג פרופיל המשתמש ב-Play Games. צריך להפעיל את הפונקציה עם מזהה השחקן המבוקש. אם לשחקן ולחבר יש כינויים במשחק, תוכלו להשתמש בהם בשיחה כדי להוסיף הקשר נוסף לממשק המשתמש של הפרופיל:
PlayGamesPlatform.Instance.ShowCompareProfileWithAlternativeNameHintsUI(
mFirstFriendId, /* otherPlayerInGameName= */ null, /* currentPlayerInGameName= */ null,
(result) => {
// Profile comparison view has closed.
});