Integrar a entrega de recursos (Unity)

Ao integrar a entrega de recursos, os jogos do Unity podem acessar pacotes de recursos usando Addressables ou AssetBundles. Os Addressables são a solução de entrega de recursos mais recente e recomendada para jogos criados com Unity 2019.4 ou mais recente, enquanto os AssetBundles dão suporte a pacotes de recursos no Unity 2017.4 e 2018.4.

Addressables do Unity

Jogos criados com Unity 2019.4 ou versões mais recentes precisam usar Addressables (link em inglês) para a entrega de recursos no Android. O Unity oferece a API Play Asset Delivery (PAD) para processar pacotes de recursos do Android usando Addressables. Para saber informações sobre como usar Addressables, consulte o estes links (em inglês):

Usar arquivos AssetBundle

Os jogos criados com Unity 2017.4 e 2018.4 podem usar arquivos AssetBundle para entrega de recursos no Android. Os arquivos AssetBundle (link em inglês) do Unity contêm recursos serializados que podem ser carregados pelo mecanismo do Unity enquanto o app está em execução. Esses arquivos são específicos da plataforma (por exemplo, criados para Android) e podem ser usados em combinação com pacotes de recursos. Geralmente, um arquivo AssetBundle é combinado em um único pacote que usa o mesmo nome do AssetBundle. Se você quiser mais flexibilidade na criação de um pacote de recursos, configure-o usando a API.

No ambiente de execução, use a classe Play Asset Delivery para Unity para extrair um AssetBundle empacotado em um pacote de recursos.

Pré-requisitos

  1. Configure o ambiente de desenvolvimento:

OpenUPM-CLI

Se a CLI do OpenUPM estiver instalada, você poderá instalar o registro do OpenUPM com o seguinte comando:

openupm add com.google.play.assetdelivery

OpenUPM

  1. Abra as configurações do gerenciador de pacotes. Para isso, selecione a opção do menu do Unity Edit > Project Settings > Package Manager.

  2. Adicione o OpenUPM como um registro com escopo à janela do gerenciador de pacotes:

    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. Selecione a opção do menu do Unity Window > Package Manager para abrir o menu do gerenciador de pacotes.

  4. Defina o menu suspenso de escopo do administrador para selecionar My Registries.

  5. Selecione o pacote plug-in do Google Play Integrity para Unity na lista de pacotes e pressione Instalar.

Importar do GitHub

  1. Faça o download da versão mais recente do .unitypackage no GitHub.

  2. Importe o arquivo .unitypackage selecionando a opção de menu Assets > Import package > Custom Package do Unity e importando todos os itens.

  1. Crie AssetBundles no Unity.

Configurar AssetBundles usando a interface

  1. Configure cada AssetBundle em um pacote de recursos:

    1. Selecione Google > Android App Bundle > Asset Delivery Settings.
    2. Para selecionar pastas que contenham arquivos do AssetBundle diretamente, clique em Add Folder.

    Botão "Add Folder" (Adicionar pasta) nas configurações do Asset Delivery no Unity

  2. Para cada pacote, mude o Delivery Mode para Install Time, Fast Follow ou On demand. Resolva erros ou dependências e feche a janela.

    Seletor de modo de entrega do Asset Delivery por pacote no Unity

  3. Selecione Google > Build Android App Bundle para criar o pacote de apps.

  4. (Opcional) Configure seu pacote de apps para que ele seja compatível com diferentes formatos de compactação de textura.

Configurar pacotes de recursos usando a API

Você pode configurar a entrega de recursos pelos scripts de editor, que podem ser executados como parte de um sistema de compilação automatizado.

Use a classe AssetPackConfig para definir quais recursos incluir em uma compilação do Android App Bundle, bem como o modo de transferência dos recursos. Esses pacotes de recursos não precisam conter um 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);
}

Você também pode usar o método estático BuildBundle na classe Bundletool para gerar um Android App Bundle com pacotes de recursos, usando BuildPlayerOptions (link em inglês) e AssetPackConfig.

Observação: para conferir um tutorial guiado, consulte o codelab Como usar a Play Asset Delivery em jogos do Unity.

Integrar com a API Play Asset Delivery Unity

A API Unity Play Asset Delivery oferece a funcionalidade de solicitar pacotes de recursos, gerenciar downloads e acessar os recursos. Primeiro, adicione o plug-in do Unity ao projeto.

As funções usadas na API dependem de como você criou os pacotes de recursos.

Se você criou pacotes de recursos usando a IU do plug-in, selecione Pacotes de recursos configurados pelo plug-in.

Se você criou pacotes de recursos usando a API (ou a interface do plug-in), selecione Pacotes de recursos configurados pela API.

Próximas etapas

Teste a entrega de recursos localmente e no Google Play.