Integrare la pubblicazione degli asset (Unity)

Quando si integra l'asset delivery, i giochi Unity possono accedere ai pacchetti di asset utilizzando Addressables o AssetBundles. Gli Addressable sono la soluzione di distribuzione degli asset più recente e consigliata per i giochi creati con Unity 2019.4 o versioni successive, mentre gli AssetBundle forniscono il supporto dei pacchetti di asset in Unity 2017.4 e 2018.4.

Unity Addressables

I giochi creati con Unity 2019.4 o versioni successive devono utilizzare Addressables per la distribuzione degli asset su Android. Unity fornisce un'API Play Asset Delivery (PAD) per la gestione dei pacchetti di asset Android utilizzando gli indirizzabili. Per informazioni sull'utilizzo degli Addressable, consulta le seguenti risorse:

Utilizza i file AssetBundle

I giochi creati con Unity 2017.4 e 2018.4 possono utilizzare i file AssetBundle per la distribuzione degli asset su Android. I file AssetBundle di Unity contengono asset serializzati che possono essere caricati dal motore Unity mentre l'app è in esecuzione. Questi file sono specifici per la piattaforma (ad esempio, creati per Android) e possono essere utilizzati in combinazione con i pacchetti di asset. In genere, un file AssetBundle viene pacchettizzato in un unico pacchetto di asset, che utilizza lo stesso nome dell'AssetBundle. Se vuoi una maggiore flessibilità nella creazione di un pacchetto di asset, configuralo utilizzando l'API.

In fase di runtime, utilizza la classe Play Asset Delivery per Unity per recuperare un AssetBundle pacchettizzato in un pacchetto di asset.

Prerequisiti

  1. Configura l'ambiente di sviluppo:

OpenUPM-CLI

Se hai installato l'interfaccia a riga di comando OpenUPM, puoi installare il registry OpenUPM con il seguente comando:

openupm add com.google.play.assetdelivery

OpenUPM

  1. Apri le impostazioni di Gestione pacchetti selezionando l'opzione di menu di Unity Modifica > Impostazioni progetto > Gestione pacchetti.

  2. Aggiungi OpenUPM come registro con ambito alla finestra 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. Apri il menu di Gestione pacchetti selezionando l'opzione di menu di Unity Finestra > Gestione pacchetti.

  4. Imposta il menu a discesa dell'ambito del gestore per selezionare I miei registri.

  5. Seleziona il pacchetto Plug-in Google Play Integrity per Unity dall'elenco dei pacchetti e premi Installa.

Importa da GitHub

  1. Scarica l'ultima release di .unitypackage da GitHub.

  2. Importa il file .unitypackage selezionando l'opzione di menu di Unity Assets > Import package > Custom Package (Asset > Importa pacchetto > Pacchetto personalizzato) e importando tutti gli elementi.

  1. Crea AssetBundle in Unity.

Configura gli AssetBundle utilizzando la UI

  1. Configura ogni AssetBundle in un pacchetto di asset:

    1. Seleziona Google > Android App Bundle > Asset Delivery Settings.
    2. Per selezionare le cartelle che contengono direttamente i file AssetBundle, fai clic su Aggiungi cartella.

    Pulsante Aggiungi cartella in Impostazioni di Asset Delivery in Unity

  2. Per ogni bundle, modifica la modalità di pubblicazione in Install Time, Fast Follow o On Demand. Risolvi eventuali errori o dipendenze e chiudi la finestra.

    Selettore della modalità di pubblicazione di Asset Delivery per bundle in Unity

  3. Seleziona Google > Build Android App Bundle (Google > Crea Android App Bundle) per creare l'app bundle.

  4. (Facoltativo) Configura l'app bundle in modo che supporti diversi formati di compressione delle texture.

Configura i pacchetti di asset utilizzando l'API

Puoi configurare la distribuzione degli asset tramite script dell'editor che possono essere eseguiti nell'ambito di un sistema di build automatizzato.

Utilizza la classe AssetPackConfig per definire quali asset includere in una build di Android App Bundle, nonché la modalità di pubblicazione degli asset. Questi pacchetti di asset non devono contenere un 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);
}

Puoi anche utilizzare il metodo statico BuildBundle nella classe Bundletool per generare un Android App Bundle con pacchetti di asset, dati BuildPlayerOptions e AssetPackConfig.

Per un tutorial guidato, consulta il codelab Utilizzo di Play Asset Delivery nei giochi Unity.

Esegui l'integrazione con l'API Unity di Play Asset Delivery

L'API Play Asset Delivery Unity fornisce la funzionalità per richiedere pacchetti di asset, gestire i download e accedere agli asset. Assicurati di aggiungere prima il plug-in Unity al progetto.

Le funzioni che utilizzi nell'API dipendono da come hai creato i pacchetti di asset.

Se hai creato pacchetti di asset utilizzando la UI del plug-in, seleziona Pacchetti di asset configurati dal plug-in.

Se hai creato pacchetti di asset utilizzando l'API (o l'interfaccia utente del plug-in), seleziona Pacchetti di asset configurati tramite API.

Passaggi successivi

Testa la distribuzione degli asset localmente e da Google Play.