הגדרת 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. מוודאים שפלטפורמת הבנייה הנוכחית מוגדרת ל-Android.

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

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

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

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

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

העתקת מקורות המידע של Android מ-Play Console

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

כדי לקבל את משאבי Android למשחק:

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

  2. בדף Play Games Services - Configuration (צמיחה > Play Games Services > Setup and management > Configuration), לוחצים על Get resources (קבלת משאבים).

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

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

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

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

  1. ב-Unity Hub, לוחצים על Window > Google Play Games > Setup > Android Setup (חלון > Google Play Games > הגדרה > הגדרת 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, לוחצים על Window > Google Play Games > Setup > Nearby Connections Setup.

    • בשדה Nearby connection service ID (מזהה שירות של חיבורים בסביבה), מזינים את הערך package_name.

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

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

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

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

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

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

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

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

  1. אין צורך להתקשר אל PlayGamesPlatform.Activate
  2. אם Xyz הוא שם של שיטה שצריך להפעיל במחלקה Social, אל תפעילו את Social.Xyz. במקום זאת, התקשר אל PlayGamesPlatform.Instance.Xyz
  3. אל תשתמשו ב-Social.Active כשאתם מבצעים אינטראקציה עם Google Play Games Services. במקום זאת, צריך להשתמש ב-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 Games Services אם המשתמש לא מחובר.

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

יצירת קובץ AAB

כדי ליצור קובץ AAB ב-Unity Hub, פועלים לפי השלבים הבאים:

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

    מידע נוסף זמין במאמר הפניה להגדרות של Android Build.

  3. לוחצים על Build (בנייה).

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

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

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

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

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

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

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

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

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

איך בונים ומריצים את הפרויקט

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

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

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

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

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

  1. מוסיפים את מזהה לקוח האינטרנט של המשחק ב-Play Console.
    1. ב-Google Play Console, בוחרים את המשחק.
    2. בדף הגדרה (הגדלת מספר המשתמשים > שירותי Play Games > הגדרה וניהול > הגדרה), לוחצים על הוספת פרטי כניסה.
    3. בדף Add credential (הוספת פרטי כניסה), בוחרים באפשרות Game server (שרת משחקים).
    4. איך יוצרים מזהה לקוח ב-OAuth 2.0
    5. חשוב לזכור את הערך של מזהה הלקוח. תצטרכו לספק את הערך הזה בהמשך.
  2. מוסיפים את מזהה הלקוח לאינטרנט ל-Unity Hub.

    1. ב-Unity Hub, מגדירים את Google Play Games for Unity ונכנסים לחשבון.
    2. במרכז של Unity, עוברים אל Window > Google Play Games > Setup > Android Setup.
    3. מזינים את הערך של מזהה הלקוח.
  3. אחזור קוד אימות של השרת להיקפי הרשאות נוספים.

    C#‎

    using GooglePlayGames.BasicApi;
    
    // Define selectedScope having additional identity scopes.
    private List selectedScopes = new List();
    
    // Add scopes you want to request.
    selectedScopes.Add(AuthScope.OPEN_ID);
    selectedScopes.Add(AuthScope.PROFILE);
    selectedScopes.Add(AuthScope.EMAIL);
    
    // Call RequestServerSideAccess with additional scopes and retrieve
    // authcode and grantedscopes list.
    PlayGamesPlatform.Instance.RequestServerSideAccess(
        /* forceRefreshToken= */ false,selectedScopes
        (AuthResponse authResponse) =>
        {
        string authCode = authResponse.GetAuthCode();
        List grantedScopes = authResponse.GetGrantedScopes();
    
        // send authCode to server...
    });

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