Escolher o modo de centro adequado
Escolher o modo de centro certo é essencial para a criação de conteúdo. Este artigo mostra como obter e modificar o modo de centro, além de dar recomendações para escolher o modo adequado.
Antes de começar
- Consulte Introdução à AR Session para entender os conceitos básicos, a composição e o fluxo de trabalho de uma session.
- Consulte Modo de centro da AR Session para entender o conceito de modo de centro e seu efeito no movimento dos objetos na cena.
Obter os modos de centro disponíveis
Quando a session está em execução, apenas os modos de centro disponíveis para essa session aparecem no menu suspenso Center do painel Inspector. Se a session não tiver iniciado, todos os modos de centro serão exibidos.

A imagem mostra os modos de centro disponíveis para uma session que usa CameraDeviceFrameSource no editor.
Nos scripts, depois que a session for montada com sucesso, você pode obter a lista de modos de centro disponíveis na session atual por meio da propriedade ARSession.AvailableCenterMode.
Por exemplo, o código abaixo mostra como verificar se um modo de centro está disponível na session atual:
if (Session.AvailableCenterMode.Contains(mode))
{
// mode está disponível na session atual
}
Modificar o modo de centro
Abra o painel Inspector e escolha o modo de centro desejado no menu suspenso Center.

Nos scripts, você pode modificar o modo de centro pela propriedade ARSession.CenterMode.
Por exemplo, o código abaixo mostra como alternar entre os modos de centro disponíveis em sequência:
while (true)
{
Session.CenterMode = (ARSession.ARCenterMode)(((int)Session.CenterMode + 1) % Enum.GetValues(typeof(ARSession.ARCenterMode)).Length);
if (Session.AvailableCenterMode.Contains(Session.CenterMode)) { break; }
}
A cada atualização da session, ela verifica se o modo de centro atual é válido. Se for válido, a session tenta usar o novo modo imediatamente.
No vídeo acima, a session começa usando o modo FirstTarget, com a árvore de Natal como objeto central (nuvem de pontos azul clara). Depois mudamos manualmente o modo de centro para Camera, e o objeto central passa a ser a câmera (cone azul). Para a descrição detalhada, veja Modo de centro da AR Session.
Se o modo de centro alterado não for válido na session atual, a propriedade CenterMode é automaticamente definida para o primeiro modo de centro disponível (normalmente FirstTarget ou SessionOrigin) e uma linha de aviso é registrada no log:
Center mode {Value} is unavailable in this session, reset to {NewValue}.
Como escolher o modo de centro
O alinhamento com objetos do mundo real é uma necessidade central na criação de conteúdo AR, e o modo de centro determina qual objeto será usado como referência para calcular a posição e a orientação dos outros objetos da cena. Por isso, escolher o modo de centro adequado é muito importante.
Recomendações gerais
Em muitos casos, usar FirstTarget ou SpecificTarget com target como centro é mais amigável para a criação de conteúdo. Assim, o ponto de referência do conteúdo sob target permanece estável e não sofre influência desnecessária do movimento de XR Origin ou camera (por exemplo, no cálculo do sistema físico). Mas isso não é absoluto:
Se você não souber qual escolher, use o valor padrão, ou seja, o centro FirstTarget.
Como a maioria das funções AR tem erro e corrige esse erro continuamente durante a execução, objetos que parecem imóveis no mundo real (por exemplotargetem sparse spatial map eXR Originem motion tracking) podem, na verdade, se mover de forma relativa no espaço virtual. Nesse caso, usartargetcomo centro combina melhor com a necessidade de criação.Caso de vários
targetsendo rastreados ao mesmo tempo
Nesse caso, por causa do erro de cálculo, mesmo que os objetos do mundo real estejam imóveis entre si, essestargettambém podem apresentar movimento relativo. A escolha do centro deve ser feita de acordo com a necessidade real; normalmente o modo FirstTarget é mais adequado.Quando usar o modo SessionOrigin
SessionOrigin é adequado para cenas em que apenas motion tracking está em execução, pois nesse casoXR Originé o único ponto de referência. Ele também serve para casos especiais se o fabricante do headset não implementou corretamente o ponto de referência do motion tracking. Nesse caso, é preciso usar o centro do mundo do Unity para forçar o modo SessionOrigin.Cenários de uso do modo Camera
O modo Camera é mais adequado para cenas em que a câmera física não se move (por exemplo, AR de cartas com câmera fixa). Nesse caso, o modo facilita a criação de conteúdo.
Modos de centro comuns por função AR
Ao usar algumas funções AR separadamente, certos modos de centro são mais comuns. A tabela abaixo resume os modos mais usados por função:
| Função | Modo de centro comum |
|---|---|
| Mega | FirstTarget ou SpecificTarget |
| Motion tracking | SessionOrigin |
| Plane detection | SessionOrigin |
| Sparse spatial map | FirstTarget ou SpecificTarget |
| Dense spatial map | SessionOrigin |
| Surface tracking | FirstTarget ou SpecificTarget |
| Image tracking | FirstTarget, SpecificTarget ou Camera |
| Cloud image recognition | FirstTarget, SpecificTarget ou Camera |
| Object tracking | FirstTarget, SpecificTarget ou Camera |
Pontos a considerar no desenvolvimento multi-dispositivo
Ao desenvolver um aplicativo AR para vários dispositivos, é preciso considerar o suporte de cada dispositivo aos modos de centro.
- Se envolver apenas celulares e tablets, normalmente não há grande problema. Se precisar usar SessionOrigin, garanta que o motion tracking possa funcionar.
- Se precisar usar um headset, preste atenção especial:
- Consulte Modos de centro válidos para descobrir quais modos cada dispositivo suporta. Se usar uma extensão de terceiros, verifique também o OriginType utilizado.
- Em dispositivos Rokid, tente não usar UXR. Com XRI, a maioria dos modos de centro fica disponível.
- Em headsets que não suportam FirstTarget e SpecificTarget, lembre-se de que a maior parte do conteúdo, como Mega ou image tracking, não consegue permanecer fixa em relação ao sistema de coordenadas do mundo do Unity.
Conteúdo que aparece corretamente em qualquer modo de centro
Aviso
No Unity AR, qualquer objeto no sistema de coordenadas do mundo do Unity que não tenha ajustado o transform de acordo com os componentes da session pode não aparecer corretamente.
Se você colocar modelos no sistema de coordenadas do mundo, a posição e a orientação deles podem não corresponder a nenhum objeto real. O resultado pode parecer correto por acaso, ou parecer flutuar ou se mover por toda parte.
Para que o conteúdo apareça corretamente em qualquer modo de centro, a forma correta é:
- sempre colocar o conteúdo a ser exibido sob o nó
targetcorrespondente, ou sob o nóXR Originse o conteúdo precisar seguir o movimento do XR Origin - ou alinhar manualmente o conteúdo com
targetouXR Origin, mas fazer isso depois do evento ARSession.PostSessionUpdate
Nota
Isso não garante que todos os elementos funcionem perfeitamente, porque algumas funções do Unity só funcionam no sistema de coordenadas do mundo (por exemplo, o sistema físico). Escolher o modo de centro correto continua sendo importante.