Asset Delivery integrieren (Unity)

Bei der Integration von Asset Delivery können Unity-Spiele über Addressables oder AssetBundles auf Asset-Packs zugreifen. Addressables sind die neuere und empfohlene Asset-Bereitstellungslösung für Spiele, die mit Unity 2019.4 oder höher entwickelt wurden. AssetBundles bieten Unterstützung für Asset-Pakete in Unity 2017.4 und 2018.4.

Unity Addressables

Für Spiele, die mit Unity 2019.4 oder höher erstellt wurden, sollten Addressables für die Asset-Bereitstellung unter Android verwendet werden. Unity bietet eine Play Asset Delivery (PAD) API für die Verarbeitung von Android-Asset-Packs mit Addressables. Informationen zur Verwendung von Addressables finden Sie hier:

AssetBundle-Dateien verwenden

Spiele, die mit Unity 2017.4 und 2018.4 erstellt wurden, können AssetBundle-Dateien für die Asset-Bereitstellung unter Android verwenden. AssetBundle-Dateien von Unity enthalten serialisierte Assets, die von der Unity-Engine geladen werden können, während die App ausgeführt wird. Diese Dateien sind plattformspezifisch (z. B. für Android erstellt) und können in Kombination mit Asset-Packs verwendet werden. In der Regel wird eine AssetBundle-Datei in ein einzelnes Asset-Paket gepackt, wobei das Paket denselben Namen wie das AssetBundle hat. Wenn Sie mehr Flexibilität beim Erstellen eines Asset-Packs wünschen, konfigurieren Sie das Asset-Pack mithilfe der API.

Verwende zur Laufzeit die Klasse Play Asset Delivery für Unity, um ein AssetBundle abzurufen, das in einem Asset-Paket verpackt ist.

Vorbereitung

  1. Entwicklungsumgebung einrichten:

OpenUPM-CLI

Wenn Sie die OpenUPM-Befehlszeile installiert haben, können Sie die OpenUPM-Registry mit dem folgenden Befehl installieren:

openupm add com.google.play.assetdelivery

OpenUPM

  1. Öffnen Sie die Einstellungen des Paketmanagers, indem Sie die Unity-Menüoption Bearbeiten > Projekteinstellungen > Paketmanager auswählen.

  2. Fügen Sie OpenUPM als bereichsbezogene Registry im Fenster „Package Manager“ hinzu:

    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. Öffnen Sie das Paketmanager-Menü, indem Sie die Unity-Menüoption Window > Package Manager auswählen.

  4. Wählen Sie im Drop-down-Menü für den Managerbereich Meine Registries aus.

  5. Wählen Sie das Paket Google Play Integrity-Plug-in für Unity aus der Paketliste aus und klicken Sie auf Installieren.

Aus GitHub importieren

  1. Laden Sie die neueste .unitypackage-Version von GitHub herunter.

  2. Importieren Sie die Datei .unitypackage, indem Sie die Unity-Menüoption Assets > Import package > Custom Package auswählen und alle Elemente importieren.

  1. AssetBundles in Unity erstellen

AssetBundles über die Benutzeroberfläche konfigurieren

  1. Konfiguriere jedes AssetBundle in einem Asset-Paket:

    1. Wählen Sie Google > Android App Bundle > Asset Delivery Settings aus.
    2. Wenn Sie Ordner auswählen möchten, die AssetBundle-Dateien enthalten, klicken Sie auf Ordner hinzufügen.

    Schaltfläche „Ordner hinzufügen“ in den Asset Delivery-Einstellungen in Unity

  2. Ändere für jedes Bundle den Bereitstellungsmodus in Installationszeit, Schnelle Bereitstellung oder On-Demand. Beheben Sie alle Fehler oder Abhängigkeiten und schließen Sie das Fenster.

    Auswahl des Asset Delivery-Bereitstellungsmodus pro Bundle in Unity

  3. Wählen Sie Google > Build Android App Bundle aus, um das App-Bundle zu erstellen.

  4. Optional: Konfigurieren Sie Ihr App-Bundle so, dass verschiedene Texturkomprimierungsformate unterstützt werden.

Asset-Packs mit der API konfigurieren

Du kannst die Asset-Auslieferung über Editor-Skripts konfigurieren, die im Rahmen eines automatisierten Build-Systems ausgeführt werden können.

Mit der Klasse AssetPackConfig definierst du, welche Assets in einen Android App Bundle-Build aufgenommen werden sollen und wie die Assets bereitgestellt werden. Diese Asset-Packs müssen kein AssetBundle enthalten.

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

Sie können auch die statische Methode BuildBundle in der Klasse Bundletool verwenden, um ein Android App Bundle mit Asset-Packs zu generieren, wenn BuildPlayerOptions und AssetPackConfig vorhanden sind.

Eine Anleitung finden Sie im Codelab „Play Asset Delivery in Unity-Spielen verwenden“.

In die Play Asset Delivery Unity API einbinden

Die Play Asset Delivery Unity API bietet die Funktionen zum Anfordern von Asset-Packs, Verwalten von Downloads und Zugreifen auf die Assets. Fügen Sie zuerst das Unity-Plug-in zu Ihrem Projekt hinzu.

Welche Funktionen Sie in der API verwenden, hängt davon ab, wie Sie die Asset-Packs erstellt haben.

Wenn Sie Asset-Packs über die Plug-in-Benutzeroberfläche erstellt haben, wählen Sie Über Plug-in konfigurierte Asset-Packs aus.

Wenn Sie Asset-Packs mit der API (oder der Plug-in-Benutzeroberfläche) erstellt haben, wählen Sie API-configured asset packs (Über die API konfigurierte Asset-Packs) aus.

Nächste Schritte

Testen Sie die Asset-Bereitstellung lokal und über Google Play.