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:
- Addressables for Android-Paket
- PAD-Leitfaden für Unity
- Referenzdokumentation zur PAD API für Unity
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
- 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.assetdeliveryOpenUPM
Öffnen Sie die Einstellungen des Paketmanagers, indem Sie die Unity-Menüoption Bearbeiten > Projekteinstellungen > Paketmanager auswählen.
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Öffnen Sie das Paketmanager-Menü, indem Sie die Unity-Menüoption Window > Package Manager auswählen.
Wählen Sie im Drop-down-Menü für den Managerbereich Meine Registries aus.
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
Laden Sie die neueste
.unitypackage-Version von GitHub herunter.Importieren Sie die Datei
.unitypackage, indem Sie die Unity-Menüoption Assets > Import package > Custom Package auswählen und alle Elemente importieren.
AssetBundles über die Benutzeroberfläche konfigurieren
Konfiguriere jedes AssetBundle in einem Asset-Paket:
- Wählen Sie Google > Android App Bundle > Asset Delivery Settings aus.
- Wenn Sie Ordner auswählen möchten, die AssetBundle-Dateien enthalten, klicken Sie auf Ordner hinzufügen.
Ä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.
Wählen Sie Google > Build Android App Bundle aus, um das App-Bundle zu erstellen.
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.