אפליקציית Play Games Friends מאפשרת לשחקנים ליצור חברים בכל המשחקים ולתחזק אותם חדשה. אפשר לבקש גישה לרשימת החברים הזו כדי לעזור לשחקנים לשחק משחק עם החברים שלהם. לצפייה דף הקונספט 'חברים' לפרטים נוספים על מערכת החברים.
לפני שמתחילים
מגדירים את הפרויקט ואת הפלאגין של Google Play Games ל-Unity. פרטים נוספים זמינים במאמר המדריך לתחילת העבודה.
כדאי לעיין בהנחיות לשיטות מומלצות עבור כדי להבין מהי הדרך הטובה ביותר להטמיע את ממשקי ה-API האלה.
לצפייה בהנחיות בנושא שיטות מומלצות מהי הדרך הטובה ביותר להטמיע את ממשקי ה-API האלה.
הפעלת החברים
כדי להפעיל את החברים, יש להשתמש בפונקציות הבאות:
הצגת חברים: כדי להוסיף את רשימת החברים של שחקן מסוים, צריך לבקש גישה לרשימת החברים שלו לרשימת החברים בתוך המשחק.
צפייה בפרופיל שחקן: מתן הרשאה לשחקן להציג את הפרופיל של שחקן אחר ב-Play Games. הדבר כדי שהשחקנים יידעו מי החברים שלהם, ויוכלו להתחבר Play Games במשחק שלך. צריך להיות מקושר לרכיב בממשק המשתמש כדי הקפצת החלון הקופץ. לצפייה הנחיות לחברים לקבלת פרטים.
הצגת החברים
יש שתי דרכים לטעון חברים, באמצעות ה-framework של ISocial
או
ישירות מול PlayGamesPlatform
.
טעינת חברים עם ISocial framework
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
מייצג את מספר הרשומות שצריך לבקש בדף הזה.
שים לב שאם כבר קיימים נתונים שנשמרו במטמון, מאגר הנתונים הזמני המוחזר עשוי להכיל כמות גדולה יותר של
מהגודל הזה. מובטח שהמאגר הזמני יכלול לפחות את המספר הזה של ערכים
אם האוסף מכיל מספיק רשומות. אם המדיניות 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.
});