הגדרת Google Play Games ב-Unity וכניסה לחשבון

במסמך הזה מוסבר איך מגדירים את פרויקט Unity כך שישתמש בפלאגין של Google Play Games ל-Unity. תלמדו איך להתקין את הפלאגין ולהגדיר את פרויקט Unity. במסמך מוסבר גם איך לאמת את שירות הכניסה.

לפני שמתחילים

בודקים את דרישות התוכנה. מגדירים את Play Console ומתקינים את Unity Hub.

התקנת פלאגין

כדי להוריד ולהתקין את הפלאגין של Google Play Games ל-Unity, פועלים לפי השלבים הבאים ב-Unity Hub:

  1. מורידים את מאגר GitHub.

  2. בספרייה current-build, מחפשים את הקובץ unitypackage. הקובץ הזה מייצג את הפלאגין. לדוגמה, הוא אמור להיראות כך:

      current-build/GooglePlayGamesPluginForUnity-X.YY.ZZ.unitypackage
    

הגדרת פרויקט ב-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.

יצירת מאגר מפתחות חדש

כדי לאמת את פרטי הכניסה, צריך מפתח. בצע את השלבים הבאים:

  1. ב-Unity Hub, לוחצים על File (קובץ) > Build settings (הגדרות build) > Player settings (הגדרות נגן).
  2. בקטע הגדרות פרסום, לוחצים על מנהל מאגר המפתחות.
    1. בחלון Keystore manager, לוחצים על Keystore > Create new > Anywhere.
    2. בוחרים תיקייה ומזינים שם למאגר המפתחות.
    3. בתיבה סיסמה, מזינים סיסמה ומאשרים אותה.
    4. לוחצים על Add key.

בודקים מה שם התיקייה. אפשר להשתמש בשם הזה כדי ליצור פרטי כניסה ב-Google Cloud.

העתקת המשאבים של Android מ-Play Console

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

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

  1. פותחים את המשחק ב-Google Play Console.

  2. בדף Play Games Services – Configuration (צמיחה >שירותי Play Games > הגדרה וניהול > הגדרה), לוחצים על Get resources.

  3. בחלון Resources, לוחצים על הכרטיסייה Android(XML).

  4. בוחרים את התוכן של משאבי Android (AndroidManifest.xml) ומעתיקים אותו.

הוספת המשאבים של Android לפרויקט ב-Unity

מוסיפים את המשאבים הבאים של Android לפרויקט ב-Unity:

  1. ב-Unity Hub, לוחצים על Window (חלון) > Google Play Games (משחקי Google Play) > Setup (הגדרה) > Android Setup (הגדרה ל-Android).

    • בשדה Directory to save constants, מזינים את שם התיקייה של קובץ הקבועים.
    • בשדה Constants class name, מזינים את שם הכיתה ב-C# שרוצים ליצור, כולל מרחב השמות.

      לדוגמה, אם הכיתה ב-C# היא id.cs והיא נמצאת בקטע Assets > myproject > scripts > id.cs. שם הכיתה של הקבועים יכול להיות myproject.scripts.id.

    • בשדה Resources definition, מדביקים את נתוני המשאבים של Android (קובץ AndroidManifest.xml) שהעתקתם מ-Google Play Console.

    • אופציונלי: בשדה Client ID, מזינים את מזהה הלקוח של אפליקציית האינטרנט המקושרת.

      במאמר יצירת מזהי לקוח מוסבר איך לקבל את מזהה הלקוח של המשחק מ-Google Cloud.

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

    • לוחצים על Setup (הגדרה). הפעולה הזו מגדירה את המשחק עם מזהה הלקוח ויוצרת כיתה ב-C# שמכילה קבועים לכל אחד מהמשאבים של Android.

  2. ב-Unity Hub, לוחצים על חלון > Google Play Games > הגדרה > הגדרת חיבורים בקרבת מקום.

    • בשדה Nearby connection service ID, מזינים את הערך package_name.

      משתמשים באותו package_name שבו השתמשתם בהגדרת הפרויקט ב-Unity.

    • לוחצים על Setup (הגדרה).

בחירת פלטפורמה חברתית

הפלאגין של שירותי המשחקים של Google Play מטמיע את ממשק ה-Social של Unity, כדי לאפשר תאימות למשחקים שכבר משתמשים בממשק הזה כשמשלבים אותם עם פלטפורמות אחרות. עם זאת, חלק מהתכונות הן ייחודיות ל-Play Games, והן מוצעות כתוספים לממשק החברתי הרגיל ש-Unity מספקת.

אפשר לגשת לקריאות ה-API הרגילות דרך האובייקט Social.Active, שהוא הפניה לממשק ISocialPlatform. כדי לגשת להרחבות הלא סטנדרטיות של שירותי המשחקים של Google Play, צריך להעביר (cast) את האובייקט Social.Active לכיתה PlayGamesPlatform, שבה זמינות השיטות הנוספות.

שימוש בפלאגין בלי לשנות את פלטפורמת הרשת החברתית שמוגדרת כברירת מחדל

כשאתם קוראים ל-PlayGamesPlatform.Activate, Google Play Games Services הופך להטמעה שמוגדרת כברירת מחדל של הפלטפורמה החברתית. כלומר, קריאות סטטיות לשיטות ב-Social וב-Social.Active יבוצעו על ידי הפלאגין של Google Play Games Services. זו ההתנהגות ברוב המשחקים שמשתמשים בפלאגין.

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

  1. אין להתקשר אל PlayGamesPlatform.Activate
  2. אם Xyz הוא שם של שיטה שצריך להפעיל בכיתה Social, לא צריך להפעיל את Social.Xyz. במקום זאת, צריך להתקשר למספר PlayGamesPlatform.Instance.Xyz
  3. אין להשתמש ב-Social.Active במהלך האינטראקציה עם שירותי Google Play Games. במקום זאת, אתם צריכים להשתמש ב-PlayGamesPlatform.Instance.

כך תוכלו לשלוח ציונים והישגים בו-זמנית לשתי פלטפורמות חברתיות או יותר:

    // Submit achievement to original default social platform
    Social.ReportProgress("MyAchievementIdHere", 100.0f, callback);

    // Submit achievement to Google Play
    PlayGamesPlatform.Instance.ReportProgress("MyGooglePlayAchievementIdHere", 100.0f, callback);

אימות שירות הכניסה

כשפותחים את המשחק, מתבצע ניסיון חיבור אוטומטי לשירותי Play Games באמצעות שירות הכניסה. אם החיבור יצליח, במשחק תוצג בקשה להיכנס לחשבון והוא יהיה מוכן לשימוש בפלאגין של Google Play Games Services ל-Unity.

אם משתמש אף פעם לא השתמש בשירותי Google Play Games במכשיר שלו, הוא יועבר באופן אוטומטי למסך הגדרה חד-פעמי כדי ליצור חשבון Play Games.

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

אם גרסת הפלאגין של Unity היא לפני v11, לא תוכלו להשתמש בתכונה של הכניסה.

    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).
      }
    }

קוד התוצאה הוא enum שאפשר להשתמש בו כדי לזהות את הסיבה לכישלון הכניסה.

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

  using GooglePlayGames;

  public void Start() {
    PlayGamesPlatform.Activate();
    Social.localUser.Authenticate(ProcessAuthentication);
  }

אי אפשר לבצע קריאות ל-API של Google Play Games Services עד שמקבלים ערך החזרה מוצלח מ-Authenticate. לכן, מומלץ להציג במשחקים מסך המתנה עד לקריאה החוזרת, כדי לוודא שהמשתמשים לא יוכלו להתחיל לשחק במשחק עד שהאימות יושלם.

שימוש בחתימת אפליקציות של Google Play

Google מנהלת את חתימת האפליקציה ומגינה עליה באמצעות Play App Signing. אתם יכולים להשתמש ב-Play App Signing כדי לחתום על קבצים של Android App Bundle(AAB) שעברו אופטימיזציה להפצה. התכונה 'חתימת אפליקציה ב-Play' מאפשרת לאחסן את חתימת האפליקציה בתשתית המאובטחת של Google. כדי להשתמש בתכונה 'חתימת אפליקציה ב-Play', קודם צריך ליצור קובץ AAB ולהוריד אותו מ-Unity Hub. לאחר מכן תוכלו להעלות את קובץ ה-AAB ל-Play Console וליצור גרסה לבדיקה פנימית.

יצירת קובץ AAB

כדי ליצור קובץ AAB ב-Unity Hub:

  1. ב-Unity Hub, לוחצים על קובץ > הגדרות build.
  2. בוחרים באפשרות Build App Bundle ( Google Play ).

    מידע נוסף זמין במאמר Android Build Settings reference.

  3. לוחצים על Build.

  4. מורידים את קובץ ה-AAB מ-Unity Hub.

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

כדי ליצור גרסה לבדיקות פנימיות ולהוסיף בודקים ב-Play Console:

  1. ב-Google Play Console, בוחרים משחק.
  2. עוברים לדף בדיקה והשקה (בדיקה > בדיקה פנימית).
  3. לוחצים על Upload (העלאה) ובוחרים את קובץ ה-AAB.
  4. בשדה Release details, מזינים שם.
  5. לוחצים על הבא ובודקים את פרטי הגרסה.
  6. לוחצים על שמירה ופרסום.
  7. בכרטיסייה בודקים, לוחצים על יצירת רשימת כתובות אימייל כדי להוסיף עד 100 בודקים.

    מידע נוסף זמין במאמר בדיקה פנימית: ניהול של עד 100 בודקים.

  8. בשדה כתובת URL או כתובת אימייל למתן משוב, מזינים כתובת URL או כתובת אימייל למתן משוב.

  9. לוחצים על שמירה.

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

  1. ב-Google Play Console, בוחרים משחק.
  2. עוברים לדף בדיקה והשקה (הגדרה > חתימה על אפליקציות).
  3. מאמתים את פרטי הכניסה לחתימת האפליקציה.

פיתוח והרצה של הפרויקט

בשלב הזה אפשר ליצור ולהריץ את פרויקט המשחק. כשהמשחק יתחיל, יוצג לכם ניסיון הכניסה האוטומטי.

צריך מכשיר פיזי עם Android שפועל בו ניפוי באגים ב-USB, או אמולטור שיכול להריץ את הפרויקט שפותח.

אחזור קודי אימות שרת

כדי לגשת לממשקי Google API בשרת אינטרנט לקצה עורפי מטעם הנגן הנוכחי, צריך לקבל קוד אימות מאפליקציית הלקוח ולהעביר אותו לאפליקציה של שרת האינטרנט. לאחר מכן אפשר להחליף את הקוד באסימון גישה כדי לבצע קריאות לממשקי ה-API השונים. למידע על תהליך העבודה, ראו כניסה באמצעות חשבון Google לאינטרנט.

כדי לקבל את קוד הגישה בצד השרת:

  1. מגדירים את מזהה הלקוח באינטרנט של אפליקציית האינטרנט שמקושרת למשחק ב-Play Console.

  2. קוראים ל-PlayGamesPlatform.Instance.RequestServerSideAccess אחרי שהשחקן מאומת כדי לקבל את קוד הגישה בצד השרת.

  3. מעבירים את הקוד הזה לאפליקציית השרת.

  PlayGamesPlatform.Instance.RequestServerSideAccess(
    /* forceRefreshToken= */ false,
    code -> {
      // send code to server
    });

הגדרה והוספה של תכונות