Ferramentas e visualizadores
As ferramentas e visualizadores no namespace Microsoft.MixedReality.WorldLocking.Tools destinam-se a ajudar durante o desenvolvimento. Eles também podem ser um ponto de partida para a interação direta avançada com o sistema World Locking Tools (WLT).
Embora eles não se destinem ao uso direto, como é dentro de um aplicativo, o desenvolvedor do aplicativo é livre para optar por fazê-lo.
O WorldLocking.Core destina-se a funcionar como está em qualquer cenário de aplicativo apropriado. No entanto, as Ferramentas podem fazer suposições sobre o aplicativo. Estes pressupostos podem torná-los inadequados em algumas situações.
Antes de incorporar qualquer uma das ferramentas diretamente em seu aplicativo de envio, considere criar uma versão dessa ferramenta personalizada para seus próprios requisitos e recursos.
Ferramentas
Ajustadores
Os ajustadores são componentes que manipulam eventos de refit. Em particular, criam Pontos de Anexo. No caso de uma operação de refit, o AttachmentPoint serve como um retorno de chamada de notificação. O Ajustador lida com esse evento adequadamente.
Ver mais discussão conceptual de AttachmentPoints.
A reação correta exata a um evento refit varia para diferentes tipos de objetos e é muito específica do aplicativo. Por exemplo, se o Fragmento do objeto estiver inativo no momento, o objeto deverá ser exibido? Para algumas aplicações, uma vez que o posicionamento adequado do objeto não pode ser determinado, ele deve ser oculto. Para outras aplicações, pode ser melhor exibir o objeto em uma pose temporariamente incorreta do que sofrer a confusão de seu desaparecimento. E mesmo para aplicativos que devem ocultar o objeto, há várias maneiras de executar a ocultação (por exemplo, desativar ou se afastar para longe).
Os componentes AdjusterFixed e AdjusterMoving lidam minimamente com dois cenários comuns.
O componente AdjusterFixed assume que seu alvo geralmente não está em movimento. Se as World Locking Tools enviarem uma pose de ajuste devido a um evento refit, pretende-se manter o objeto do AdjusterFixed estacionário no mundo.
Em contraste, o componente AdjusterMoving assume que seu destino é móvel através do espaço de coordenadas Unity. Ele mantém o sistema World Locking Tools avaliado da localização do seu alvo, de modo que, no caso de uma operação de refit, o sistema pode dar a correção mais precisa para manter a posição do alvo em relação ao mundo físico constante naquele momento.
Adaptadores
Os componentes do adaptador destinam-se apenas a ilustração. Se você estiver usando um dos adaptadores, provavelmente deve repensar como está tentando usar as Ferramentas de Bloqueio Mundial.
Em particular, o MRTK já tem adaptadores integrados, portanto, nenhuma transformação adicional do sistema de coordenadas é necessária por parte do aplicativo.
Pode haver momentos, especialmente se não estiver usando MRTK, em que a conversão de recursos nativos, que serão relatados em coordenadas do Espaço Esponjoso, para o Espaço Congelado. Nesses casos, o desenvolvedor do aplicativo pode encontrar um dos adaptadores incluídos aqui para ser uma boa referência.
WorldAnchorAdapter - Um WorldAnchor ajustará a pose de um objeto no espaço Spongy para permanecer fixo no espaço físico. Isso é redundante com o espaço bloqueado pelo mundo fornecido pelo World Locking Tools, e assim o objeto ficará à deriva no Espaço Congelado. Este adaptador permite que um WorldAnchor mantenha a pose de um objeto no Espaço Congelado. Isso é desnecessário, exceto para diagnósticos. Todos os objetos no espaço de coordenadas globais do Unity são bloqueados pelo mundo pelas Ferramentas de Bloqueio Mundial.
ToggleWorldAnchor - Semelhante ao WorldAnchorAdapter, mas pode ser alternado. Também converte automaticamente para o comportamento normal do WorldAnchor quando o WorldLockingManager está desativado. Útil apenas para diagnósticos.
FrozenSpatialMapping - Um adaptador gerencia e processa corretamente os resultados de um SurfaceObserver. O sistema MRTK Spatial Awareness fornece toda essa funcionalidade e muito mais, e não requer nenhum adaptador para funcionar com World Locking Tools.
FrozenTapToAdd - A interface direta com o sistema de entrada do Unity requer a conversão de dados de coordenadas de entrada, conforme mostrado aqui. Isso é desnecessário com o sistema de entrada do MRTK.
Visualizadores
Visualização de gráfico âncora
O AnchorGraphVisual e seu pré-fabricado associado são o núcleo das visualizações fornecidas. As peças componentes são as seguintes:
Eixos - As poses atuais para as origens do Espaço Esponjoso (verde) e Espaço Congelado (azul) são mostradas como identificadores padrão de 3 eixos de seta.
Âncoras esponjosas - Estas são as âncoras subjacentes nativas que foram criadas para alimentar a otimização do Frozen World Engine. Cada um é representado por um anel, juntamente com uma etiqueta de texto que o identifica. Além disso, mais informações são transmitidas por cor e tamanho.
Uma âncora ativa rastreada será verde.
Uma âncora rastreada com relevância zero será vermelha.
Uma âncora sem suporte será amarela.
Quanto maior o anel, maior a relevância para aquela âncora.
Âncoras Congeladas - Estes são os pontos de referência correspondentes no Espaço Congelado. Na ausência de erro do rastreador, estes estarão exatamente alinhados com as Âncoras Esponjosas.
Bordas Congeladas Esponjosas - Conectam as Âncoras Esponjosas às Âncoras Congeladas correspondentes. Como na ausência de erro do rastreador, estes seriam coincidentes, não ver essas bordas significa que tudo está funcionando perfeitamente. Em qualquer caso, essas bordas não devem ser maiores do que alguns centímetros. Eles são vermelhos na extremidade congelada. A cor desvanece para azul na extremidade esponjosa.
Bordas de âncora - Estas linhas finas azul-cinza mostram as conexões entre as âncoras esponjosas no gráfico de âncora.
Habilitar a exibição do gráfico âncora que o World Locking Tools gera à medida que o usuário se move pelo ambiente físico requer apenas soltar o pré-fabricado WorldLockingTools > Prefabs > AnchorGraphVisual na cena. Ele é usualmente adicionado como um irmão ao WorldLockingContext, mas seu posicionamento exato na hierarquia não é importante. No entanto, ele não deve ser colocado na hierarquia da câmera.
As âncoras espaciais que WLT cria e usa internamente são criadas na posição da câmera. Como é desconcertante estar andando por um campo de visualizações de âncora na altura dos olhos, o sistema usa como padrão exibi-las 1 metro abaixo de sua posição real. Para ver as visualizações de âncora nas posições reais da âncora, defina o parâmetro Deslocamento Vertical do componente Gráfico de Âncora Visual como zero.
Saída adicional
Os Exemplos de Bloqueio Mundial incluem diagnósticos de texto. A maioria deles é relevante apenas para desenvolvedores das World Locking Tools, em vez de clientes de suas habilidades. No entanto, eles estão disponíveis para leitura e, como mostrado no script StatusToText , para exibição em tempo real.
Para análise postmortem, a seção Diagnósticos do WorldLockingContext pode ser muito útil na geração de relatórios de falhas do Frozen World Engine. Consulte Relatar um bug para obter mais informações.