שילוב העברת נכסים (Unity)

כשמשלבים את העברת הנכסים, משחקי Unity יכולים לגשת לחבילות הנכסים באמצעות Addressables או AssetBundles. ‫Addressables הוא הפתרון החדש והמומלץ יותר להעברת נכסים למשחקים שפותחו באמצעות Unity בגרסה 2019.4 ואילך, ואילו AssetBundles מספק תמיכה בחבילות נכסים ב-Unity בגרסאות 2017.4 ו-2018.4.

Unity Addressables

במשחקים שפותחו באמצעות Unity 2019.4 ואילך, צריך להשתמש ב-Addressables כדי להעביר נכסים ב-Android. ב-Unity יש ממשק Play Asset Delivery (PAD) API לטיפול בחבילות נכסים ל-Android באמצעות Addressables. למידע נוסף על השימוש ב-Addressables:

שימוש בקובצי AssetBundle

במשחקים שפותחו באמצעות Unity 2017.4 ו-Unity 2018.4 אפשר להשתמש בקובצי AssetBundle להעברת נכסים ב-Android. קובצי AssetBundle של Unity מכילים נכסים שעברו סריאליזציה, שמנוע Unity יכול לטעון בזמן שהאפליקציה פועלת. הקבצים האלה ספציפיים לפלטפורמה (לדוגמה, מיועדים ל-Android) ואפשר להשתמש בהם בשילוב עם חבילות נכסים. בדרך כלל, קובץ AssetBundle אחד נארז בחבילת נכסים אחת, והחבילה משתמשת באותו שם כמו ה-AssetBundle. אם אתם רוצים יותר גמישות ביצירת חבילת נכסים, אתם יכולים להגדיר את חבילת הנכסים באמצעות ה-API.

בזמן הריצה, משתמשים במחלקה Play Asset Delivery for Unity כדי לאחזר AssetBundle שנארז בחבילת נכסים.

דרישות מוקדמות

  1. מגדירים את סביבת הפיתוח:

OpenUPM-CLI

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

openupm add com.google.play.assetdelivery

OpenUPM

  1. פותחים את הגדרות מנהל החבילות דרך אפשרות התפריט של Unity‏ Edit > Project Settings > Package Manager (עריכה > הגדרות הפרויקט > מנהל החבילות).

  2. מוסיפים את OpenUPM כמרשם מוגדר לחלון Package Manager:

    Name: package.openupm.com
    URL: https://package.openupm.com
    Scopes: com.google.external-dependency-manager
      com.google.play.common
      com.google.play.core
      com.google.play.assetdelivery
      com.google.android.appbundle
    
  3. פותחים את התפריט של מנהל החבילות על ידי בחירה באפשרות Window > Package Manager בתפריט של Unity.

  4. בתפריט הנפתח של היקף הניהול, בוחרים באפשרות My Registries.

  5. בוחרים את החבילה Google Play Integrity plugin for Unity מרשימת החבילות ולוחצים על Install.

ייבוא מ-GitHub

  1. מורידים את הגרסה האחרונה של .unitypackage מ-GitHub.

  2. מייבאים את הקובץ .unitypackage. לשם כך, בוחרים באפשרות Assets > Import package > Custom Package (נכסים > ייבוא חבילה > חבילה מותאמת אישית) בתפריט של Unity ומייבאים את כל הפריטים.

  1. יצירת AssetBundles ב-Unity.

הגדרת AssetBundles באמצעות ממשק המשתמש

  1. מגדירים כל AssetBundle בחבילת נכסים:

    1. בוחרים באפשרות Google > קובץ Android App Bundle > Asset Delivery Settings.
    2. כדי לבחור תיקיות שמכילות קובצי AssetBundle, לוחצים על Add Folder.

    הכפתור "הוספת תיקייה" בהגדרות של העברת נכסים ב-Unity

  2. בכל חבילה, משנים את מצב ההעברה לבזמן ההתקנה, Fast Follow או על פי דרישה. מתקנים את השגיאות או התלויות וסוגרים את החלון.

    בורר מצב העברת נכסים לכל חבילה ב-Unity

  3. בוחרים באפשרות Google > Build Android App Bundle כדי ליצור את קובץ Android App Bundle.

  4. (אופציונלי) מגדירים את ה-App Bundle כך שיתמוך בפורמטים שונים של דחיסת טקסטורה.

הגדרת חבילות נכסים באמצעות ה-API

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

משתמשים במחלקה AssetPackConfig כדי להגדיר אילו נכסים לכלול ב-build של קובץ Android App Bundle, וגם את מצב ההעברה של הנכסים. חבילות הנכסים האלה לא צריכות להכיל AssetBundle.

public void ConfigureAssetPacks {
   // Creates an AssetPackConfig with a single asset pack, named
   // examplePackName, containing all the files in path/to/exampleFolder.
   var assetPackConfig = new AssetPackConfig();
   assetPackConfig.AddAssetsFolder("examplePackName",
                                   "path/to/exampleFolder",
                                   AssetPackDeliveryMode.OnDemand);

   // Configures the build system to use the newly created assetPackConfig when
   // calling Google > Build and Run or Google > Build Android App Bundle.
   AssetPackConfigSerializer.SaveConfig(assetPackConfig);

   // Alternatively, use BundleTool.BuildBundle to build an App Bundle from script.
   BuildBundle(new buildPlayerOptions(), assetPackConfig);
}

אתם יכולים גם להשתמש ב-method הסטטי BuildBundle בכיתה Bundletool כדי ליצור קובץ Android App Bundle עם חבילות נכסים, בהינתן BuildPlayerOptions ו-AssetPackConfig.

ב-Codelab בנושא שימוש ב-Play Asset Delivery במשחקי Unity יש מדריך מפורט.

שילוב עם Play Asset Delivery Unity API

Play Asset Delivery Unity API מספק את הפונקציונליות לבקשת חבילות נכסים, לניהול הורדות ולגישה לנכסים. קודם צריך להוסיף את הפלאגין של Unity לפרויקט.

הפונקציות שבהן משתמשים ב-API תלויות באופן שבו יצרתם את חבילות הנכסים.

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

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

השלבים הבאים

בודקים את העברת הנכסים באופן מקומי ומ-Google Play.