Instruções

Como começar a usar o Unity e o Android XR

Leitura de 6 minutos
Luke Hopkins
Engenheiro de relações com desenvolvedores, Android

O Samsung Galaxy XR chegou, com tecnologia do Android XR! Esta postagem faz parte da Semana de Destaques do Android XR, em que oferecemos recursos (postagens de blog, vídeos, exemplos de código e muito mais) projetados para ajudar você a aprender, criar e preparar seus apps para o Android XR. 

Nunca houve um momento melhor para começar a desenvolver para XR. Em dezembro do ano passado, anunciamos o Android XR, a nova plataforma Android do Google criada com base em padrões abertos, como OpenXR e Vulkan, que torna o desenvolvimento para XR mais acessível do que nunca.


Quando combinado com as ferramentas de XR atuais do Unity, você tem um stack de desenvolvimento poderoso e maduro. Isso torna possível criar e implantar apps de XR que funcionam em vários dispositivos.

openxr_face_tracking2.webp

Não importa se você já desenvolveu para XR ou não, queremos ajudar você a começar.

Este blog vai ajudar você a começar a desenvolver para Android XR e Unity. Vamos nos concentrar nas etapas práticas para configurar seu ambiente, entender o ecossistema de pacotes e começar a criar.

Ao final deste blog, você terá um bom entendimento de:

  • O ecossistema de pacotes
  • Etapas essenciais de configuração
  • Métodos de entrada
  • Privacidade e permissões
  • Camadas de composição

Unity para desenvolvimento do Android XR

Você pode escolher o Unity pela compatibilidade multiplataforma, que permite criar uma vez e implantar no Android XR e em outros dispositivos XR.

Ao usar o Unity, você se beneficia do ecossistema e das ferramentas de XR maduras. Ele já tem pacotes estabelecidos, como o XR Interaction Toolkit, o plug-in OpenXR, as camadas de composição XR, o XR Hands, uma loja de recursos extensa cheia de componentes e modelos prontos para XR e ferramentas de simulação e teste de XR. Como o Unity 6 foi lançado em novembro do ano passado, você também se beneficiará do desempenho aprimorado do Pipeline de Renderização Universal (URP), do melhor suporte a gráficos Vulkan e dos perfis de build aprimorados.

Confira alguns projetos de exemplo para ter uma ideia do que pode ser feito:

Configuração essencial: sua base de desenvolvimento

Requisitos e instalação do Unity 6

Você vai precisar do Unity 6 para criar seu app, já que versões anteriores não oferecem suporte ao Android XR. Instale o Unity Hub primeiro e depois o Unity 6 com o módulo Suporte ao build do Android, seguindo estas etapas.

unity6.png

Perfis de build do Android XR: simplificando a configuração

Os perfis de build do Unity são recursos de projeto que armazenam suas configurações e configurações específicas da plataforma. Em vez de precisar configurar manualmente de 15 a 20 configurações diferentes em vários menus, você pode usar um perfil de build para fazer isso automaticamente.
Você pode criar seus próprios perfis de build, mas, por enquanto, recomendamos usar o perfil de build dedicado do Android XR que criamos.

Para selecionar seu perfil de build, selecione Arquivo > Perfil de build no seu projeto do Unity. Para instruções completas, consulte a página do fluxo de trabalho Desenvolver para Android XR.

Se você fizer alguma mudança, poderá criar um novo perfil de build para compartilhar com sua equipe. Dessa forma, você garante uma experiência de build consistente em todos os casos.

buildprofiles.png

Depois dessas etapas, você poderá criar e executar seu APK para dispositivos Android XR.

API de gráficos: por que o Vulkan é importante

Depois de configurar seu projeto do Unity com um perfil de build do Android XR, recomendamos primeiro verificar se o Vulkan está definido como sua API de gráficos. O Android XR foi criado como uma plataforma Vulkan-first. Em março de 2025, o Google anunciou que o Vulkan agora é a API de gráficos oficial do Android. É uma API de gráficos moderna e de baixo nível que ajuda os desenvolvedores a maximizar o desempenho das GPUs modernas e desbloqueia recursos avançados, como ray tracing e multithreading, para visuais de jogos realistas e imersivos.

Esses padrões oferecem a melhor compatibilidade para seus aplicativos atuais e facilitam os problemas e custos de portabilidade. Além disso, é possível ativar recursos avançados do Android XR, como o URP Application Space Warp e a renderização foveada

O Unity 6 processa o Vulkan automaticamente. Portanto, quando você usa o perfil de build do Android XR, o Unity configura o Vulkan como sua API de gráficos. Isso garante acesso a todos os recursos avançados do Android XR sem nenhuma configuração manual.

Para verificar as configurações da API de gráficos, acesse "Editar" > "Configurações do projeto" > "Player" > "Guia Android" > "Outras configurações" > "APIs de gráficos".

appentrypoint.png

Entender o ecossistema de pacotes

Há dois pacotes diferentes que você pode usar para o Android XR no Unity. Um deles é usando as extensões do Android XR para Unity, e o outro é usando o pacote Unity OpenXR: Android XR.

Pode parecer a mesma coisa, mas espere um pouco.

O pacote Unity OpenXR: Android XR é o pacote oficial do Unity para suporte ao Android XR. Ele oferece a maioria dos recursos do Android XR, disponibilizados pelos padrões OpenXR. Ele também permite a integração do AR Foundation para recursos de realidade mista. O principal benefício de usar o pacote Unity OpenXR: Android XR é que ele oferece uma API unificada para oferecer suporte a dispositivos XR.


Já as extensões do Android XR para Unity são o pacote XR do Google, projetado especificamente para desenvolvimento de dispositivos Android XR. Ele complementa o pacote Unity OpenXR com outros recursos, como modos de mesclagem de ambiente, mesclagem de cena, rastreamento de imagem e rastreamento de corpo. A desvantagem é que você só pode desenvolver para dispositivos Android XR.


A escolha depende das suas necessidades específicas, mas geralmente recomendamos o Unity OpenXR: Android XR, porque ele oferece muito mais flexibilidade para os dispositivos com que seu app será compatível. Com base nos requisitos do aplicativo, você pode adicionar as extensões do Android XR para Unity.

Como instalar pacotes

Para adicionar um novo pacote, com o projeto aberto no Unity, selecione "Janela" > "Gerenciamento de pacotes" > "Gerenciador de pacotes".

Nela, você pode instalar esses pacotes na guia "Registro do Unity":

packagemanager.png

Você pode instalar o pacote Android XR para Unity pelo GitHub selecionando o ícone ➕, selecionando "Instalar pacote do URL do Git" e inserindo "https://github.com/android/android-xr-unity-package.git"

packagemanager2.png

Recursos necessários do OpenXR

Agora que você tem os pacotes necessários instalados, vamos ativar alguns recursos principais para que nosso projeto funcione.

Você pode ativar a configuração do OpenXR para Android: "Editar" -> "Configurações do projeto" -> "Gerenciamento de plug-ins XR" -> Clique no Android e ative o OpenXR

xrpluginmgmt.png

Em seguida, precisamos ativar o suporte para: "Suporte ao Android XR". Vamos abordar outros recursos do OpenXR conforme necessário. Por enquanto, só precisamos que o suporte ao Android XR esteja ativado.

Entrada

O Android XR oferece suporte a entrada para mãos, voz, acompanhamento ocular, teclado e controladores. Recomendamos instalar o XR Interaction Toolkit e o XR Hands, porque eles contêm os melhores prefabs para começar. Ao usar esses prefabs, você terá tudo o que precisa para oferecer suporte a mãos e controladores no seu app.

xrinteractiontoolkit.png

Depois que o XR Hands e o XR Interactive Toolkit estiverem instalados, recomendo importar os recursos iniciais e a demonstração de interação com as mãos. Em seguida, ative os perfis de interação manual e controlador simples do Khronos e ative os recursos de subsistema de rastreamento manual e de rastreamento manual do Meta.

Você pode editar essas configurações acessando "Editar" > "Configurações do projeto" > "Gerenciamento de plug-ins XR" > "OpenXR"

profiles.png

Também recomendamos o prefab do Unity, XR Origin, que representa a posição e a orientação do usuário no espaço XR. Ele contém o equipamento de câmera e os componentes de rastreamento necessários para renderizar sua experiência de XR do ponto de vista correto.

A maneira mais simples de adicionar esse prefab é importá-lo da demonstração de integração manual que importamos anteriormente, que pode ser encontrada aqui "Hands Integration Toolkit" > "Hand Interaction" > "Prefabs" > "XR Origin"

prefabs.png

Recomendo usar esse prefab na opção "XR Origin" nos objetos do jogo, porque ele usa o XR Input Modality Manager, que alterna automaticamente entre as mãos e os controladores dos usuários. Isso vai oferecer o melhor sucesso para alternar entre mãos e controladores.

Privacidade e permissões: criando confiança do usuário

O que você criar, precisará capturar permissões de execução dos usuários. Isso ocorre porque a compreensão de cena, o acompanhamento ocular, a captura de expressões faciais e a captura de movimentos das mãos fornecem acesso a dados que podem ser mais sensíveis ao usuário.

Esses recursos fornecem informações pessoais mais detalhadas do que os apps tradicionais para computador ou dispositivos móveis. Portanto, as permissões de execução garantem que os usuários tenham controle total sobre os dados que escolhem compartilhar. Para manter as políticas de segurança e privacidade do Android, o Android XR tem permissões para cada um desses recursos.

Por exemplo, se você usar o pacote XR Hands para gestos manuais personalizados, será necessário solicitar a permissão de captura de movimentos das mãos (confira abaixo), porque esse pacote precisa rastrear muitas informações sobre as mãos do usuário. Isso inclui o rastreamento de poses de articulações das mãos e velocidades angulares e lineares;

Observação: para uma lista completa de extensões que exigem permissões, confira as informações no site para desenvolvedores de XR.

  const string k_Permission = "android.permission.HAND_TRACKING";

#if UNITY_ANDROID
void Start()
{
    if (!Permission.HasUserAuthorizedPermission(k_Permission))
    {
        var callbacks = new PermissionCallbacks();
        callbacks.PermissionDenied += OnPermissionDenied;
        callbacks.PermissionGranted += OnPermissionGranted;
        
        Permission.RequestUserPermission(k_Permission, callbacks);
    }
}

void OnPermissionDenied(string permission)
{
    // handle denied permission
}


void OnPermissionGranted(string permission)
{
    // handle granted permission
}

#endif // UNITY_ANDROID

Melhorar a qualidade visual com camadas de composição

Uma camada de composição é a maneira recomendada de renderizar elementos da interface. Elas permitem exibir elementos com uma qualidade muito maior em comparação com o pipeline de renderização padrão do Unity, já que tudo é renderizado diretamente no compositor da plataforma.

Por exemplo, se você estiver mostrando texto, a renderização padrão do Unity provavelmente terá texto borrado, bordas suaves e artefatos visuais. Já com as camadas de composição, o texto será mais claro, os contornos serão mais nítidos e a experiência será melhor no geral.


Além do texto, ele também renderiza vídeos, imagens e elementos da interface com uma qualidade muito maior. Isso é feito usando o suporte nativo para as camadas do compositor de execução.

Para ativar as camadas de composição, abra o Gerenciador de pacotes, selecione "Registro do Unity" e instale "Camadas de composição XR".

Criar e executar

Agora que você tem os pacotes OpenXR instalados e os recursos ativados, uma configuração de prefab para movimento das mãos e da cabeça, você pode criar sua cena e implantar diretamente no headset para teste.

Próximas etapas: aprimorando suas habilidades

Agora que você configurou o ambiente de desenvolvimento do Android XR e entendeu os conceitos principais, confira as próximas etapas para continuar sua jornada de desenvolvimento para XR:

Recursos essenciais para continuar aprendendo:

Projetos de exemplo para explorar:

Escrito por:

Continuar lendo