Table of Contents

Alternar automaticamente objetos Unity XR em cenas Unity

Os componentes XR do Unity (incluindo AR Foundation) têm suporte limitado a dispositivos. Para usar AR Foundation em dispositivos compatíveis e, ao mesmo tempo, disponibilizar funções AR em muitos outros dispositivos, EasyAR oferece uma função para alternar automaticamente objetos Unity XR. O conteúdo a seguir descreve as alterações que essa função faz nos objetos da cena e como usá-la.

Antes de começar

Introdução à função

Como a implementação subjacente da AR Foundation do Unity em celulares é ARCore e ARKit, ela só pode ser usada em um conjunto limitado de dispositivos, especialmente indisponível em muitos celulares Android domésticos chineses. Portanto, geralmente é recomendado habilitar AR Foundation e scripts funcionais relacionados apenas em dispositivos compatíveis. A função de alternância automática de objetos Unity XR implementa essa operação, é projetada principalmente para mobile AR e fica desabilitada em headsets na configuração padrão.

Quando a função completa está habilitada,

Na configuração padrão, as condições de habilitação da função são:

  • Habilitada no Windows/Mac.
  • Na inicialização do switcher, se o loader de mobile AR (ARKit/ARCore) estiver active, a função é habilitada.
  • Na inicialização do switcher, se houver outros loaders além de mobile AR (ARKit/ARCore), mas nenhum loader estiver active, a função é desabilitada.
Nota

Os componentes do XR Interaction Toolkit não são controlados por esta função, e sua disponibilidade no EasyAR não foi verificada. Em teoria, funções que usam apenas o GameObject Unity.XR.CoreUtils.XROrigin e sua Camera devem funcionar normalmente. Se o comportamento for anormal, você pode tentar definir ARSession.ARCenterMode como ARSession.ARCenterMode.SessionOrigin. Se a função ainda não estiver normal, será necessário implementar um controle personalizado dos componentes XR Interaction Toolkit e desabilitar os componentes relacionados quando FrameSource não herdar de ARFoundationFrameSource.

Método de configuração

Esta função pode ser habilitada ou desabilitada pelas opções em Unity XR > Unity XR Auto Switch dentro de Project Settings > EasyAR > Sense.

alt text

O comportamento das opções na figura é o seguinte:

  • Editor: opções do modo de edição
  • Player: opções do modo runtime
    • Enable: habilita o controle em runtime. Observação: quando esta opção está desligada, os componentes desabilitados no modo de edição não serão restaurados em runtime.
    • Enable If Desktop: habilita no Windows/Mac.
    • Enable If Mobile AR On Startup: na inicialização do switcher, se o loader de mobile AR (ARKit/ARCore) estiver active, habilita. Normalmente esta opção requer que Initialize XR on Startup em Project Settings > XR Plug-in Management esteja marcado.
    • Disable If Non Mobile AR Post Startup: na inicialização do switcher, se houver outros loaders além de mobile AR (ARKit/ARCore), mas nenhum loader estiver active, desabilita. Normalmente esta opção é usada quando Initialize XR on Startup em Project Settings > XR Plug-in Management não está marcado.
    • Restore AR Session When Disabled: quando a função está desabilitada, restaura (habilita) todos os UnityEngine.XR.ARFoundation.ARSession desabilitados, independentemente de terem sido desabilitados pelo EasyAR. Esta opção geralmente é usada para restaurar componentes desabilitados durante a edição.

Usar um método de controle personalizado

Se for necessário personalizar a alternância desses componentes, ou se o comportamento do EasyAR interferir no funcionamento normal de certos componentes, certifique-se de desativar essas opções e personalize a alternância de componentes conforme as regras básicas abaixo:

  1. Desabilite UnityEngine.XR.ARFoundation.ARSession no editor (ele é executado antes de todos os outros scripts)
  2. Antes que AR Foundation comece a funcionar, desabilite todos os componentes Unity XR Core e AR Foundation, além dos componentes ou funções relacionados que precisam ser controlados
  3. Se ARCoreARFoundationFrameSource ou ARKitARFoundationFrameSource for selecionado durante easyar.ARSession.Assemble(), habilite todos os componentes ou funções desabilitados anteriormente antes que StartSession() seja concluído; normalmente recomenda-se fazer isso na resposta ao evento easyar.ARSession.AssembleUpdate
  4. Se outro FrameSource for selecionado durante easyar.ARSession.Assemble(), mantenha inalterado

Tópicos relacionados