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