Carregamento assíncrono de recursos do Unity3D (3) - Carregamento assíncrono de recursos de endereçáveis

Este artigo apresenta o carregamento de recursos de Endereçáveis, que também é baseado no AssetBundle. Os endereçáveis ​​são liberados após a versão do Unity2018. Você pode encontrar diretamente Endereçáveis ​​em Window-> Package Manager, que atingiu a versão 1.7.5.
Carregamento assíncrono de recursos do Unity3D (3) - Carregamento assíncrono de recursos de endereçáveis

Após a conclusão da instalação, os recursos do projeto aparecerão Endereçáveis.Depois que
Carregamento assíncrono de recursos do Unity3D (3) - Carregamento assíncrono de recursos de endereçáveis
a instalação estiver concluída, entre na janela-> Gerenciamento de ativos-> Endereçável-> Grupos
Carregamento assíncrono de recursos do Unity3D (3) - Carregamento assíncrono de recursos de endereçáveis

  1. Os recursos podem ser agrupados, o primeiro local após a entrada é o grupo de grupo padrão
  2. Criar-> Grupo-> Ativos de Pacotes podem criar grupos de Grupos
  3. Perfil: defina o endereço da sua própria embalagem de recursos e selecione o local que você definiu, digite o perfil Gerenciar para configurar vários endereços de embalagem (pode ser serviço de teste, serviço de desenvolvimento, serviço online, serviço VIP, etc.) embalagem local / remota configurações
    podem ⽣ gerar muitas configurações diferentes: testando o serviço, o serviço oficial, serviço VIP, etc.
    • caminho Desenvolver local - a rota lado embalado estrada local
    • caminho de carga local - o caminho de carga estrada lado local
    • remoto caminho construção - trajeto da estrada pacote distal
    • Caminho de carregamento remoto-Caminho de carregamento remotoCarregamento assíncrono de recursos do Unity3D (3) - Carregamento assíncrono de recursos de endereçáveis
  4. A ferramenta inclui as ferramentas que você usa, Carregamento assíncrono de recursos do Unity3D (3) - Carregamento assíncrono de recursos de endereçáveisincluindo perfis de análise de carregamento de recursos, serviços de teste, Hosting Services, etiquetas, etc.
  5. Existem três opções para reproduzir o Script de modo: o primeiro é mais rápido, que pode ser testado no editor do Unity, o segundo é carregamento simulado, o Unity simula um processo de carregamento remoto e o terceiro é carregado ( requer), quando o programa é empacotado, você deve primeiro selecioná-lo para empacotar os recursosCarregamento assíncrono de recursos do Unity3D (3) - Carregamento assíncrono de recursos de endereçáveis
  6. Bulid é um recurso empacotado

Processo de empacotamento de recursos endereçáveis
Carregamento assíncrono de recursos do Unity3D (3) - Carregamento assíncrono de recursos de endereçáveis

Vai exigir carregamento de recursos assíncrono, verifique endereçável vivo diretamente em seu padrão Grupo Grupo Grupo Grupo ou crie o seu próprio na Carregamento assíncrono de recursos do Unity3D (3) - Carregamento assíncrono de recursos de endereçáveis
marcados 1 posição, você pode alterar o nome do recurso
marca o 2 pode definir a recursos de etiqueta
Nota: Acompanhamento Você pode carregar recursos por tag ou nome. Depois de
adicionar todos os recursos, empacote os recursos no local Build. O empacotamento de recursos está basicamente concluído. Quanto aos detalhes, você pode abrir a documentação da API.

Método de carregamento de recursos Depois que os
recursos acima são empacotados, os recursos são carregados de forma assíncrona

InstantiateAsync ()
Instanciação de instância assíncrona
• O sistema não espera
• Quando a chamada é concluída, ela volta e é executada • Um grande número de instanciações de instância não fica preso no sistema
LoadAssetAsync ()
• Carregamento assíncrono
• Os recursos também podem ser locais Pode estar em um servidor remoto

using UnityEngine;
using UnityEngine.AddressableAssets;
using UnityEngine.ResourceManagement.AsyncOperations;

public class Loading : MonoBehaviour
{
    //直接选择拖入目标
    public AssetReference box;

    /// <summary>
    /// 加载
    /// </summary>
    void LoadBox()
    {
        box.LoadAssetAsync<GameObject>().Completed += OnLoaded;
    }

    //加载完成的回调
    void OnLoaded(AsyncOperationHandle<GameObject> obj)
    {
        GameObject cube = obj.Result;
    }
}

Carregar por nomeCarregamento assíncrono de recursos do Unity3D (3) - Carregamento assíncrono de recursos de endereçáveis

using UnityEngine;
using UnityEngine.AddressableAssets;
using UnityEngine.ResourceManagement.AsyncOperations;

public class Loading : MonoBehaviour
{

    /// <summary>
    /// 加载
    /// </summary>
    void LoadBox()
    {
        Addressables.LoadAssetAsync<GameObject>("cube").Completed += OnLoaded;

                //异步加载实例化
        //Addressables.InstantiateAsync("cube");
    }

    //加载完成的回调
    void OnLoaded(AsyncOperationHandle<GameObject> obj)
    {
        GameObject cube = obj.Result;
    }
}

Carregar pelo nome da etiqueta (adequado para carregar mapas de materiais, etc.)
Carregamento assíncrono de recursos do Unity3D (3) - Carregamento assíncrono de recursos de endereçáveis

  Addressables.LoadAssetsAsync<GameObject>(new List<object> { "key", "label" }, null, Addressables.MergeMode.Intersection).Completed += (AsyncOperationHandle<IList<GameObject>> obj) => {
            GameObject box = ((AsyncOperationHandle<IList<GameObject>>)obj).Result[0];
        };

Nota: ⚠️Quando
um recurso em uma pasta Resources é marcado como Endereçável, o sistema o move automaticamente da pasta Resources para a nova pasta Resources_moved.
• O local associado padrão apontará para a rota da estrada antiga original.
• O código de carregamento original será alterado de Resources.LoadAsync <GameObject> ("map /
city.prefab") para Addressables.LoadAssetAsync <GameObject> ("map / city.prefab");

Conversão da versão antiga:
Quando Pacotes de ativos é definido no projeto, na primeira vez em que você abre o menu Endereçáveis, você será perguntado se deseja transferir para o grupo Endereçáveis.

  • O Addressables é baseado na extensão do sistema Asset Bundles.Você pode pensar em Asset Bundles como gerenciamento manual e Addressables como gerenciamento automático.
  • Você só pode usar Endereçáveis.
  • Embora Endereçáveis ​​e Pacotes de Ativos possam ser misturados, o objetivo oficial não é dois
  • A coexistência, mas os Endereçáveis ​​podem lidar com todas as tarefas relacionadas como objetivo.
  • public GameObject XXX alterado para public AssetReference XXX; • Instantiate () alterado para AssetRefName.InstantiateAsync ();
  • Carregar use LoadAssetAsync <GameObject> ();

Resumo
legado Assetbudle e endereçável em comparação com o último mais fácil de usar, e não se dirigem para gerenciar recursos de armazenamento, atualização de recursos também é mais conveniente.
Os endereçáveis ​​não são apenas carregados ou instanciados, você pode consultar onde o objeto está. • O sistema ajudará você a lidar com a correlação racional.O
Build Script permite que você escreva seu próprio processo de empacotamento.Os
Addressables são um processo de alto nível baseado na arquitetura do Asset Bundle.
Endereçável no futuro

Atualmente, o endereçável tem alguns problemas, como não oferecer suporte a pacotes de scripts, pacotes de projetos A, carregamento de projetos B e erros de uso, etc.

Acho que você gosta

Origin blog.51cto.com/myselfdream/2488786
Recomendado
Clasificación