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.
Após a conclusão da instalação, os recursos do projeto aparecerão Endereçáveis.Depois que
a instalação estiver concluída, entre na janela-> Gerenciamento de ativos-> Endereçável-> Grupos
- Os recursos podem ser agrupados, o primeiro local após a entrada é o grupo de grupo padrão
- Criar-> Grupo-> Ativos de Pacotes podem criar grupos de Grupos
- 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 remoto - A ferramenta inclui as ferramentas que você usa,
incluindo perfis de análise de carregamento de recursos, serviços de teste, Hosting Services, etiquetas, etc.
- 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 recursos
- Bulid é um recurso empacotado
Processo de empacotamento de recursos 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
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 nome
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.)
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.