במסמך הזה נסביר איך להעביר משחקים קיימים מ-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.](https://developer.android.com/static/images/games/pgs/unityfolders.png?hl=he)
מייבאים את הפלאגין החדש לפרויקט ב-Unity
כדי לייבא את הפלאגין לפרויקט ב-Unity:
- פותחים את פרויקט המשחק.
- ב-Unity Hub, לוחצים על Assets > Import Package > Custom Package כדי לייבא את הקובץ
unitypackage
שהורדתם לנכסים של הפרויקט. מוודאים שפלטפורמת ה-build הנוכחית מוגדרת כ-Android.
בתפריט הראשי, לוחצים על File > Build Settings (קובץ > הגדרות build).
בוחרים באפשרות Android ולוחצים על Switch Platform (החלפת פלטפורמה).
אמור להופיע פריט תפריט חדש בקטע חלון > Google Play Games. אם לא, מרעננים את הנכסים בלחיצה על Assets (נכסים) > Refresh (רענון) ואז מנסים להגדיר שוב את פלטפורמת ה-build.
ב-Unity Hub, לוחצים על File (קובץ) > Build Settings (הגדרות build) > 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 ]
מוודאים שיש עקביות ברכיבי ממשק המשתמש.
חלונות קופצים, לוחות לידרבורד והישגים מוצגים בצורה תקינה ועקבית בגודלי מסך ובכיוונים שונים בממשק המשתמש (UI) של Play Games Services.
האפשרות ליציאה לא מוצגת בממשק המשתמש של שירותי המשחקים של Play.
מוודאים שאפשר לאחזר את מזהה הנגן, ואם רלוונטי, שהיכולות בצד השרת פועלות כמצופה.
אם המשחק משתמש באימות בצד השרת, צריך לבדוק היטב את התהליך
requestServerSideAccess
. מוודאים שהשרת מקבל את קוד האימות ויכול להחליף אותו באסימון גישה. בדיקת תרחישי הצלחה וכשל של שגיאות רשת, תרחישיclient ID
לא חוקיים.
אם המשחק שלכם השתמש באחת מהתכונות הבאות, כדאי לבדוק אותן כדי לוודא שהן פועלות כמו לפני ההעברה:
- לידרבורדים: שליחת ציונים וצפייה בלוחות לידרבורד. בודקים את הדירוג הנכון ואת הצגת השמות והציונים של השחקנים.
- הישגים: ביטול הנעילה של ההישגים ואימות שהם מתועדים בצורה נכונה ומוצגים בממשק המשתמש של Play Games.
- משחקים שמורים: אם המשחק משתמש במשחקים שמורים, צריך לוודא שהשמירה והטעינה של ההתקדמות במשחק פועלות בצורה חלקה. חשוב במיוחד לבדוק את הנושא במספר מכשירים ואחרי עדכוני אפליקציות.
משימות לאחר ההעברה
אחרי שמשלימים את המעבר ל-SDK בגרסה Games v2, מבצעים את השלבים הבאים.