Table of Contents

Adicionar alvos de rastreamento Mega

Este artigo apresenta como adicionar alvos de rastreamento Mega e como carregar modelos de ambiente no editor Unity para auxiliar no desenvolvimento.

Antes de começar

Nota

O conteúdo e ferramentas abaixo aplicam-se apenas ao desenvolvimento de aplicativos Unity usando EasyAR Mega.

Se estiver desenvolvendo mini-programas, consulte criar e fazer upload de anotações usando o editor Unity (desenvolvimento de mini-programas).

Se desejar apenas visualizar resultados de mapeamento Mega, consulte visualizar malha 3D texturizada no guia de uso Mega.

Se precisar simular para verificar efeitos de localização sem um projeto Unity aplicável, consulte visualização de efeitos de simulação no guia de uso Mega.

Alvos de rastreamento Mega

Alvos de rastreamento Mega são objetos vazios contendo o componente BlockController, chamados block. Na cena, blocks são organizados sob um objeto vazio contendo o componente BlockRootController, nomeado por padrão como MegaBlocks. Todos os objetos block sob MegaBlocks representam alvos de rastreamento no localizador atual.

alt text

O desenvolvimento frequentemente requer modelos block para auxiliar na visualização e posicionamento de conteúdo 3D. Este modelo pode ser carregado na cena usando ferramentas.

alt text

A posição do modelo está alinhada com o alvo de rastreamento block, permitindo posicionar conteúdo 3D diretamente sobre ele.

Dica

Modelos são armazenados sob nós de ferramentas, existindo apenas no modo editor, não sendo incluídos no aplicativo final.

Adicionar alvos de rastreamento no editor

Este método requer configurar BlockHolder.BlockRootSource como External (padrão) ou Mixed.

alt text

Adicionar ferramenta Block Viewer for Unity Developer

Clique com o botão direito em um espaço vazio na vista Hierarchy, e através do menu EasyAR Mega > Tool > Block Viewer for Unity Developer (Edit Mode) adicione a ferramenta Block Viewer para desenvolvimento Unity.

alt text

Importante

Ao desenvolver aplicativos Mega com Unity, use obrigatoriamente a ferramenta Block Viewer for Unity Developer. Outras ferramentas no menu EasyAR Mega > Tool não são adequadas para desenvolvimento de aplicativos Unity.

Embora Annotation Tool tenha funcionalidades similares, parte delas será removida em versões futuras, portanto não é recomendada.

Funcionalidades de anotação do Annotation Tool (apenas as anotações) serão migradas para o EasyAR Developer Center, carregamento de malha block e posicionamento de modelos não são afetados.

Após adicionar a ferramenta, um nó EasyAR.Mega.BlockViewer (Dev) e um nó MegaBlocks aparecerão na hierarquia da cena.

alt text

Gerar alvos de rastreamento — block

Selecione o nó EasyAR.Mega.BlockViewer (Dev), no painel Inspector preencha as informações da conta EasyAR e faça login;

alt text

Clique no botão à direita de Mega Cloud Service;

alt text

Selecione o Serviço de localização Mega desejado, clique em OK.

alt text

Após selecionar o serviço, a lista de blocks no localizador atual será exibida sob o nó MegaBlocks e no painel da ferramenta.

alt text

Dica

Por que meu MegaBlocks está vazio?

Verifique meu localizador está pronto para uso?

Neste ponto, alvos de rastreamento block foram gerados. Cada subnó iniciando com Block_ sob MegaBlocks representa um alvo de rastreamento block.

Carregar modelo block

Clique em Carregar block selecionado:

alt text

Após carregar, o block será exibido na janela Scene.

alt text

Adicionar alvos de rastreamento automaticamente ao localizar com sucesso

Este método requer configurar BlockHolder.BlockRootSource como Internal ou Mixed.

Nestes modos, ao localizar um novo block não presente sob BlockHolder.BlockRoot, ele será automaticamente adicionado. Se BlockHolder.BlockRoot não existir, será criado automaticamente.

Dica

Ao adicionar automaticamente durante localização bem-sucedida, modelos block não podem ser carregados, apenas alvos de rastreamento block são adicionados.

Adicionar alvos de rastreamento via script

Este método requer configurar BlockHolder.BlockRootSource como Internal ou Mixed. Neste caso, se BlockHolder.BlockRoot não existir, será criado automaticamente. Alternativamente, configure BlockHolder.BlockRootSource como External e especifique manualmente o objeto BlockHolder.BlockRoot no editor.

Nota

Se um block não estiver no localizador, mesmo adicionado via script, não poderá ser localizado.

Use o método BlockHolder.Hold para adicionar um novo block sob BlockHolder.BlockRoot. Isso é comum ao usar arquivos de anotação ema, onde scripts adicionam blocks após ler informações de anotação.

Por exemplo, este trecho demonstra como adicionar blocks usando informações de arquivo de anotação:

foreach (var item in ema.blocks)
{
    var info = new BlockController.BlockInfo { ID = item.id.ToString(), Timestamp = item.timestamp };
    if (!item.keepTransform && item.location.OnSome)
    {
        blockHolder.Hold(info, item.location.Value);
    }
    else
    {
        blockHolder.Hold(info, item.transform.ToUnity());
    }
}
Dica

Ao adicionar alvos de rastreamento via script durante runtime, modelos block não podem ser carregados, apenas alvos de rastreamento block são adicionados.

Próximos passos

Tópicos relacionados