מעבר ל-Play Games Services v2‏ (Unity)

במסמך הזה נסביר איך להעביר משחקים קיימים מ-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

כדי לייבא את הפלאגין לפרויקט ב-Unity:

  1. פותחים את פרויקט המשחק.
  2. ב-Unity Hub, לוחצים על Assets > Import Package > Custom Package כדי לייבא את הקובץ unitypackage שהורדתם לנכסים של הפרויקט.
  3. מוודאים שפלטפורמת ה-build הנוכחית מוגדרת כ-Android.

    1. בתפריט הראשי, לוחצים על File > Build Settings (קובץ > הגדרות build).

    2. בוחרים באפשרות Android ולוחצים על Switch Platform (החלפת פלטפורמה).

    3. אמור להופיע פריט תפריט חדש בקטע חלון > Google Play Games. אם לא, מרעננים את הנכסים בלחיצה על Assets (נכסים) > Refresh (רענון) ואז מנסים להגדיר שוב את פלטפורמת ה-build.

  4. ב-Unity Hub, לוחצים על File (קובץ) > Build Settings (הגדרות build) > Player Settings (הגדרות נגן) > Other Settings (הגדרות אחרות).

  5. בתיבה Target API level (רמת ה-API של היעד), בוחרים גרסה.

  6. בתיבה Scripting backend, מזינים IL2CPP.

  7. בוחרים ערך בתיבה Target architectures.

  8. שימו לב לשם החבילה package_name.תוכלו להשתמש במידע הזה מאוחר יותר.

    הגדרות הנגן בפרויקט ב-Unity
    הגדרות הנגן בפרויקט ב-Unity.
  9. העתקת המשאבים של Android מ-Play Console

  10. הוספת המשאבים של Android לפרויקט ב-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();

בדיקה של המשחק

מומלץ לבדוק את המשחק כדי לוודא שהוא פועל כמצופה. הבדיקות שאתם מבצעים תלויות בתכונות של המשחק.

בהמשך מפורטת רשימה של בדיקות נפוצות שאפשר להריץ.

  1. הכניסה בוצעה בהצלחה.

    1. הכניסה האוטומטית פועלת. המשתמש צריך להיכנס לחשבון בשירותי המשחקים של Play כשמפעילים את המשחק.

    2. מוצג חלון קופץ עם הודעת הפתיחה.

      דוגמה לחלון קופץ של קבלת פנים.
      חלון קופץ לדוגמה עם הודעת פתיחה (לוחצים כדי להגדיל).

    3. מוצגות הודעות יומן על הצלחה. מריצים את הפקודה הבאה במסוף:

      adb logcat | grep com.google.android.

      דוגמה להודעה ביומן על הצלחה:

      [$PlaylogGamesSignInAction$SignInPerformerSource@e1cdecc
      number=1 name=GAMES_SERVICE_BROKER>], returning true for shouldShowWelcomePopup.
      [CONTEXT service_id=1 ]
  2. מוודאים שיש עקביות ברכיבי ממשק המשתמש.

    1. חלונות קופצים, לוחות לידרבורד והישגים מוצגים בצורה תקינה ועקבית בגודלי מסך ובכיוונים שונים בממשק המשתמש (UI) של Play Games Services.

    2. האפשרות ליציאה לא מוצגת בממשק המשתמש של שירותי המשחקים של Play.

    3. מוודאים שאפשר לאחזר את מזהה הנגן, ואם רלוונטי, שהיכולות בצד השרת פועלות כמצופה.

    4. אם המשחק משתמש באימות בצד השרת, צריך לבדוק היטב את התהליך requestServerSideAccess. מוודאים שהשרת מקבל את קוד האימות ויכול להחליף אותו באסימון גישה. בדיקת תרחישי הצלחה וכשל של שגיאות רשת, תרחישי client ID לא חוקיים.

אם המשחק שלכם השתמש באחת מהתכונות הבאות, כדאי לבדוק אותן כדי לוודא שהן פועלות כמו לפני ההעברה:

  • לידרבורדים: שליחת ציונים וצפייה בלוחות לידרבורד. בודקים את הדירוג הנכון ואת הצגת השמות והציונים של השחקנים.
  • הישגים: ביטול הנעילה של ההישגים ואימות שהם מתועדים בצורה נכונה ומוצגים בממשק המשתמש של Play Games.
  • משחקים שמורים: אם המשחק משתמש במשחקים שמורים, צריך לוודא שהשמירה והטעינה של ההתקדמות במשחק פועלות בצורה חלקה. חשוב במיוחד לבדוק את הנושא במספר מכשירים ואחרי עדכוני אפליקציות.

משימות לאחר ההעברה

אחרי שמשלימים את המעבר ל-SDK בגרסה Games v2, מבצעים את השלבים הבאים.

  1. שימוש בחתימת אפליקציות ב-Play

  2. יצירת קובץ AAB

  3. יצירת גרסה לבדיקות פנימיות

  4. אימות פרטי הכניסה לחתימה על האפליקציה