שירות 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.
});