במאמר הזה מוסבר איך להעביר משחקים קיימים מ-games v1 SDK ל-games v2 SDK. התוסף Play Games ל-Unity, בגרסאות 10 ומטה, משתמש ב-SDK בגרסה Games v1.
לפני שמתחילים
- חשוב לוודא שכבר הגדרתם את Play Console והתקנתם את Unity Hub.
הורדה של הפלאגין Google Play Games ל-Unity
כדי ליהנות מהתכונות החדשות ביותר ב-Play Games Services, צריך להוריד ולהתקין את הגרסה האחרונה של הפלאגין. אפשר להוריד אותו ממאגר GitHub.
הסרת הפלאגין הישן
ב-Unity Hub, מסירים את התיקיות או הקבצים הבאים.
Assets/GooglePlayGames Assets/GeneratedLocalRepo/GooglePlayGames Assets/Plugins/Android/GooglePlayGamesManifest.androidlib Assets/Plugins/Android

ייבוא הפלאגין החדש לפרויקט Unity
כדי לייבא את הפלאגין לפרויקט Unity, מבצעים את השלבים הבאים:
- פותחים את פרויקט המשחק.
- ב-Unity Hub, לוחצים על Assets > Import Package > Custom Package (נכסים > ייבוא חבילה > חבילה מותאמת אישית) כדי לייבא את הקובץ
unitypackage
שהורד לנכסים של הפרויקט. מוודאים שפלטפורמת הבנייה הנוכחית מוגדרת ל-Android.
בתפריט הראשי, לוחצים על File > Build Settings (קובץ > הגדרות בנייה).
בוחרים באפשרות Android ולוחצים על החלפת פלטפורמה.
פריט תפריט חדש אמור להופיע בקטע חלון > Google Play Games. אם לא, מרעננים את הנכסים על ידי לחיצה על Assets > Refresh (נכסים > רענון) ואז מנסים להגדיר שוב את פלטפורמת הפיתוח.
ב-Unity Hub, לוחצים על File > Build Settings > Player Settings > Other Settings (קובץ > הגדרות בנייה > הגדרות הפעלה > הגדרות אחרות).
בתיבה Target API level (רמת ה-API לטירגוט), בוחרים גרסה.
בתיבה Scripting backend, מזינים
IL2CPP
.בתיבה Target architectures (ארכיטקטורות יעד), בוחרים ערך.
שימו לב לשם החבילה package_name.תוכלו להשתמש במידע הזה בהמשך.
הגדרות הנגן בפרויקט Unity.
עדכון קוד הכניסה האוטומטית
מחליפים את מחלקת האתחול PlayGamesClientConfiguration
במחלקה PlayGamesPlatform.Instance.Authenticate()
.
אין צורך בהפעלה ובאיניציאליזציה של PlayGamesPlatform
. התקשרות אל PlayGamesPlatform.Instance.Authenticate()
מאחזרת את התוצאה של כניסה אוטומטית.
C#
ב-Unity Hub, מאתרים את הקבצים עם המחלקה PlayGamesClientConfiguration
.
using GooglePlayGames;
using GooglePlayGames.BasicApi;
using UnityEngine.SocialPlatforms;
public void Start() {
PlayGamesClientConfiguration config =
new PlayGamesClientConfiguration.Builder()
// Enables saving game progress
.EnableSavedGames()
// Requests the email address of the player be available
// will bring up a prompt for consent
.RequestEmail()
// Requests a server auth code be generated so it can be passed to an
// associated backend server application and exchanged for an OAuth token
.RequestServerAuthCode(false)
// Requests an ID token be generated. This OAuth token can be used to
// identify the player to other services such as Firebase.
.RequestIdToken()
.Build();
PlayGamesPlatform.InitializeInstance(config);
// recommended for debugging:
PlayGamesPlatform.DebugLogEnabled = true;
// Activate the Google Play Games platform
PlayGamesPlatform.Activate();
}
מעדכנים אותו לערך הבא:
using GooglePlayGames;
public void Start() {
PlayGamesPlatform.Instance.Authenticate(ProcessAuthentication);
}
internal void ProcessAuthentication(SignInStatus status) {
if (status == SignInStatus.Success) {
// Continue with Play Games Services
} else {
// Disable your integration with Play Games Services or show a login
// button to ask users to sign-in. Clicking it should call
// PlayGamesPlatform.Instance.ManuallyAuthenticate(ProcessAuthentication).
}
}
בחירת פלטפורמה של רשת חברתית
כדי לבחור פלטפורמה חברתית, אפשר לעיין במאמר בנושא בחירת פלטפורמה חברתית.
אחזור קודי אימות של שרת
כדי לקבל קודי גישה בצד השרת, אפשר לעיין במאמר בנושא אחזור קודי אימות של השרת.
הסרת קוד היציאה מהחשבון
מסירים את הקוד ליציאה מהחשבון. אין יותר צורך בלחצן יציאה במשחק ב-Play Games Services.
מסירים את הקוד שמופיע בדוגמה הבאה:
C#
// sign out
PlayGamesPlatform.Instance.SignOut();
בדיקת המשחק
כדי לוודא שהמשחק פועל כמו שתכננתם, כדאי לבדוק אותו. הבדיקות שתבצעו תלויות בתכונות של המשחק.
ריכזנו כאן רשימה של בדיקות נפוצות שכדאי להריץ.
הכניסה בוצעה בהצלחה.
הכניסה האוטומטית פועלת. המשתמש צריך להיות מחובר לשירותי המשחקים של Play כשהמשחק מופעל.
מוצג חלון קופץ עם הודעת הפתיחה.
דוגמה לחלון קופץ של הודעת פתיחה (לחיצה להגדלה). יוצגו הודעות יומן מוצלחות. מריצים את הפקודה הבאה במסוף:
adb logcat | grep com.google.android.
בדוגמה הבאה מוצגת הודעה ביומן שמעידה על הצלחה:
[
$PlaylogGamesSignInAction$SignInPerformerSource@e1cdecc number=1 name=GAMES_SERVICE_BROKER>], returning true for shouldShowWelcomePopup. [CONTEXT service_id=1 ]
מוודאים שיש עקביות ברכיבי ממשק המשתמש.
הפריטים הקופצים, לוחות הלידרבורד וההישגים מוצגים בצורה נכונה ועקבית בגדלים ובכיוונים שונים של מסכים בממשק המשתמש של Play Games Services.
אפשרות היציאה מהחשבון לא מוצגת בממשק המשתמש של שירותי המשחקים של Play.
מוודאים שאפשר לאחזר את מזהה השחקן, ואם רלוונטי, שהיכולות בצד השרת פועלות כמצופה.
אם המשחק משתמש באימות בצד השרת, חשוב לבדוק היטב את תהליך
requestServerSideAccess
. מוודאים שהשרת מקבל את קוד ההרשאה ויכול להחליף אותו באסימון גישה. בודקים תרחישים של הצלחה ושל כשל בשגיאות רשת, תרחישים לא חוקיים שלclient ID
.
אם המשחק שלכם השתמש באחת מהתכונות הבאות, כדאי לבדוק אותן כדי לוודא שהן פועלות כמו לפני ההעברה:
- לוחות לידרבורד: שליחת ניקוד וצפייה בלוחות לידרבורד. בודקים את הדירוג הנכון ואת השמות והניקוד של השחקנים.
- הישגים: ביטול נעילה של הישגים ואימות שהם נרשמים ומוצגים בצורה נכונה בממשק המשתמש של Play Games.
- משחקים שמורים: אם המשחק משתמש במשחקים שמורים, צריך לוודא שהשמירה והטעינה של ההתקדמות במשחק פועלות בצורה חלקה. חשוב במיוחד לבדוק את זה במכשירים שונים ואחרי עדכוני אפליקציות.
משימות אחרי ההעברה
אחרי המעבר ל-SDK בגרסה Games v2, צריך לבצע את השלבים הבאים.