Table of Contents

Adicionar alvo de rastreamento Mega

Este artigo descreve como adicionar e configurar alvos de rastreamento do Mega.

Antes de começar

Nota

O conteúdo e as ferramentas a seguir são aplicáveis apenas ao processo de desenvolvimento de aplicativos Unity com o EasyAR Mega.

Se você estiver desenvolvendo um pequeno programa, consulte Criar e carregar anotações usando o editor do Unity (desenvolvimento de pequenos programas).

Se você não estiver desenvolvendo um aplicativo Unity, mas deseja visualizar o resultado do mapeamento do Mega, consulte Visualizar malha tridimensional da cena real no Guia de uso do Mega.

Se você não estiver desenvolvendo um aplicativo Unity, mas precisa simular a execução para visualizar o efeito de localização, consulte Visualização do efeito de simulação de execução no Guia de uso do Mega.

O conteúdo deste artigo requer que os seguintes pacotes do Unity tenham sido importados no projeto:

  • com.easyar.sense

Objetivos de rastreamento do Mega

O objetivo de rastreamento do Mega é um objeto vazio que contém o componente MegaBlockController, que representa um bloco no Unity.

alt text

Nota

Quando o pacote com.easyar.mega não for importado, as funcionalidades do editor do bloco não estarão disponíveis, mas isso não afetará o efeito e as funcionalidades de rastreamento em tempo de execução.

Se a funcionalidade do Mega não for habilitada corretamente na configuração, não será possível usá-la.

alt text

Criar alvos de rastreamento

Clique com o botão direito em um espaço vazio na visualização Hierarchy e use o menu EasyAR Sense > Mega > Target : Mega Block para criar um alvo de rastreamento do Mega.

alt text

Em scripts, você pode usar ARSessionFactory.CreateController para criar.

ARSessionFactory.CreateController<MegaBlockController>();

Configurar o alvo de rastreamento

Configurar a fonte de dados do target

Os objetivos de rastreamento só podem ser identificados e rastreados depois de configurar corretamente sua fonte.

Na visualização Hierarchy, você pode selecionar o nó do bloco e preencher o ID e o Nome do bloco.

No script, você pode modificar Source antes do componente MonoBehaviour.Start() para definir a fonte do bloco.

block.Source = new MegaBlockController.BlockInfoSourceData(id, name);

Onde:

  • O ID do bloco é o identificador único do bloco e deve ser preenchido.
  • O nome do bloco é o nome do bloco e pode ser preenchido conforme necessário. Geralmente, é recomendado preencher o nome real do bloco para facilitar a identificação.
Dica

O ID e o nome do bloco podem ser obtidos no centro de desenvolvimento do EasyAR na biblioteca de localização correspondente.

Se não houver dados de bloco na biblioteca de localização, você precisa adicionar os blocos necessários à biblioteca de localização e verificar novamente se a biblioteca de localização em nuvem é válida.

Configurar o rastreador usado pelo target

O target de rastreamento será carregado pelo rastreador configurado e rastreado depois de localizado corretamente.

Na visualização Hierarchy, você pode selecionar o nó do bloco e depois selecionar o Mega Tracker na sessão.

No script, você pode modificar Tracker para definir o rastreador do bloco.

block.Tracker = megaTracker;

Tracker pode ser modificado a qualquer momento em tempo de execução. A carga/descarregamento ocorrerá enquanto a sessão estiver em execução. Se você definir Tracker como null, esse target será descarregado do rastreador previamente configurado. A carga do bloco é um processo virtual e não falhará.

Nota

Há algumas condições-chave para que um target seja rastreado:

  1. O id de MegaBlockController.Source deve ser configurado corretamente antes de MonoBehaviour.Start().
  2. O bloco correspondente ao id de Source deve existir no banco de localização.
  3. MegaBlockController.Tracker deve ser configurado para usar o banco de localização correto.

跟踪目标的生命周期

Um ciclo de vida comum de um alvo de rastreamento é o seguinte:

flowchart LR
  sstart((session 启动))
  sstop([session 停止])
  
  start("Target.Start")
  load("加载")
  tracking[["持续跟踪"]]

  sstart --> load --> tracking --> sstop
  start -. "Target.Tracker = tracker" .-> load 

O fluxo é aproximadamente dividido em várias fases:

  • 加载:O alvo de rastreamento é carregado pelo rastreador configurado. Isso ocorrerá após o Start() do próprio target e o início da sessão.
  • 跟踪过程:Após o alvo de rastreamento ser localizado, o rastreador continuará rastreando a posição e o status do alvo até que outro alvo seja localizado.
  • 卸载:O alvo de rastreamento é removido do rastreador, e o rastreador não rastreará mais o alvo. Isso ocorrerá quando a sessão for encerrada ou o target for configurado para não usar o rastreador.

Próximos passos

Tópicos relacionados