ادغام کردن ارائه دارایی (Unity)

هنگام ادغام کردن ارائه دارایی، بازی‌های Unity می‌توانند بااستفاده از Addressables یا AssetBundles به بسته‌های دارایی دسترسی پیدا کنند. Addressables راهکار جدیدتر و توصیه‌شده برای ارائه دارایی در بازی‌های ساخته‌شده با Unity نسخه ۲۰۱۹.۴ یا بالاتر است، درحالی‌که AssetBundles از بسته‌های دارایی در Unity نسخه ۲۰۱۷.۴ و ۲۰۱۸.۴ پشتیبانی می‌کند.

Unity Addressables

بازی‌های ساخته‌شده با Unity نسخه ۲۰۱۹.۴ یا بالاتر باید از Addressables برای ارائه دارایی در Android استفاده کنند. Unity یک Play Asset Delivery (PAD) API برای مدیریت بسته‌های دارایی Android بااستفاده از Addressables ارائه می‌دهد. برای کسب اطلاعات درباره استفاده از Addressables، به موارد زیر مراجعه کنید:

استفاده از فایل‌های AssetBundle

بازی‌های ساخته‌شده با Unity 2017.4 و 2018.4 می‌توانند از فایل‌های AssetBundle برای ارائه دارایی در Android استفاده کنند. فایل‌های AssetBundle Unity حاوی دارایی‌های سریالی‌شده‌ای هستند که می‌توانند توسط موتور Unity درحین اجرای برنامه بارگیری شوند. این فایل‌ها مختص پلاتفرم هستند (برای مثال، برای Android ساخته شده‌اند) و می‌توانند در ترکیب با بسته‌های دارایی استفاده شوند. معمولاً، یک فایل AssetBundle در یک بسته دارایی بسته‌بندی می‌شود و بسته از همان نام AssetBundle استفاده می‌کند. اگر می‌خواهید انعطاف‌پذیری بیشتری در ایجاد بسته دارایی داشته باشید، بسته دارایی را بااستفاده از API پیکربندی کنید.

در زمان اجرا، از کلاس ارائه دارایی‌های Play برای 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. منو مدیر بسته را با انتخاب گزینه منو Unity پنجره > مدیر بسته باز کنید.

  4. منوِ کرکره‌ای دامنه مدیر را روی دفترهای ثبت من تنظیم کنید.

  5. بسته افزونه Google Play Integrity برای Unity را از فهرست بسته‌ها انتخاب کنید و نصب را فشار دهید.

وارد کردن از GitHub

  1. جدیدترین نسخه .unitypackage را از GitHub بارگیری کنید.

  2. فایل .unitypackage را با انتخاب گزینه منو Unity دارایی‌ها > وارد کردن بسته > بسته سفارشی و وارد کردن همه موارد وارد کنید.

  1. ایجاد AssetBundles در Unity.

پیکربندی AssetBundles بااستفاده از میانای کاربر

  1. هر AssetBundle را در بسته دارایی پیکربندی کنید:

    1. Google > بسته ترکیبی برنامه Android > تنظیمات توزیع دارایی را انتخاب کنید.
    2. برای انتخاب پوشه‌هایی که مستقیماً حاوی فایل‌های AssetBundle هستند، روی افزودن پوشه کلیک کنید.

    دکمه «افزودن پوشه» در تنظیمات «ارائه دارایی‌ها» در Unity

  2. برای هر دسته، حالت تحویل را به زمان نصب، تحویل سریع، یا درخواست‌محور تغییر دهید. هرگونه خطا یا وابستگی را حل‌وفصل کنید و پنجره را ببندید.

    انتخابگر حالت ارائه «ارائه دارایی‌های Play» برای هر بسته در Unity

  3. Google > ساختن بسته ترکیبی برنامه Android را انتخاب کنید تا بسته ترکیبی برنامه ساخته شود.

  4. (اختیاری) دسته برنامه‌تان را برای پشتیبانی از قالب‌های فشرده‌سازی بافت مختلف پیکربندی کنید.

پیکربندی بسته‌های دارایی بااستفاده از میانای برنامه‌سازی کاربردی

می‌توانید تحویل دارایی را ازطریق اسکریپت‌های ویرایشگر پیکربندی کنید که می‌تواند به‌عنوان بخشی از سیستم ساخت خودکار اجرا شود.

از کلاس AssetPackConfig برای تعریف دارایی‌هایی که باید در ساخت «بسته ترکیبی برنامه Android» گنجانده شوند و همچنین حالت ارائه دارایی‌ها استفاده کنید. این بسته‌های دارایی لازم نیست حاوی 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);
}

همچنین می‌توانید از روش ایستا BuildBundle در کلاس Bundletool برای تولید «بسته ترکیبی برنامه Android» با بسته‌های دارایی استفاده کنید، BuildPlayerOptions و AssetPackConfig داده شده است.

برای آموزش گام‌به‌گام، Codelab استفاده از «ارائه دارایی‌های Play» در بازی‌های Unity را ببینید.

ادغام کردن با Play Asset Delivery Unity API

Play Asset Delivery Unity API عملکرد لازم برای درخواست بسته‌های دارایی، مدیریت بارگیری‌ها، و دسترسی به دارایی‌ها را فراهم می‌کند. مطمئن شوید که ابتدا افزایه Unity را به پروژه‌تان اضافه کنید.

توابعی که در میانای برنامه‌سازی کاربردی استفاده می‌کنید به نحوه ایجاد بسته‌های دارایی بستگی دارد.

اگر بسته‌های دارایی را بااستفاده از میانای کاربر افزونه ایجاد کرده‌اید، بسته‌های دارایی پیکربندی‌شده با افزونه را انتخاب کنید.

اگر بسته‌های دارایی را بااستفاده از API (یا میانای کاربر افزونه) ایجاد کرده‌اید، بسته‌های دارایی پیکربندی‌شده با API را انتخاب کنید.

مراحل بعدی

ارائه دارایی را به‌صورت محلی و از Google Play آزمایش کنید.