Tutoriais

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 já chegou com tecnologia Android XR! Esta postagem faz parte da Semana de Destaques do Android XR, em que oferecemos recursos (postagens no blog, vídeos, exemplos de código e muito mais) para ajudar você a aprender, criar e preparar seus apps para o Android XR. 

Nunca houve um momento melhor para começar a desenvolver em XR. Em dezembro 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 de 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 permite criar e implantar apps de RV/RA 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 focar nas etapas práticas para configurar seu ambiente, entender o ecossistema de pacotes e começar a criar.

Ao final deste blog, você vai entender bem:

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

Desenvolvimento do Unity para 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 XR avançadas. Ele já tem pacotes estabelecidos, como o XR Interaction Toolkit, o plug-in OpenXR, as camadas de composição de XR, o XR Hands, uma extensa loja de recursos cheia de componentes e modelos prontos para XR, além de ferramentas de simulação e teste de XR. Desde o lançamento do Unity 6 em novembro passado, você também se beneficia da performance aprimorada do Pipeline de Renderização Universal (URP), do melhor suporte a gráficos Vulkan e dos perfis de build aprimorados.

Confira alguns exemplos de projetos 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 as versões anteriores não são compatíveis com o Android XR. Instale primeiro o Unity Hub e depois o Unity 6 com o módulo Android Build Support, seguindo estas etapas.

unity6.png

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

Os perfis de build do Unity são recursos do projeto que armazenam suas configurações específicas da plataforma. Assim, 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.
É possível 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, clique em File > Build Profile no projeto do Unity. Para conferir instruções completas, consulte a página do fluxo de trabalho Desenvolver para Android XR.

Se você fizer mudanças, crie um novo perfil de build para compartilhar com sua equipe. Assim, você garante uma experiência de build consistente em todos os casos.

buildprofiles.png

Depois dessas etapas, você pode criar e executar o APK para dispositivos Android XR.

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

Depois de configurar o projeto do Unity com um perfil de build do Android XR, recomendamos primeiro verificar se o Vulkan está definido como sua API gráfica. O Android XR foi criado como uma plataforma que prioriza o Vulkan. Em março de 2025, o Google anunciou que o Vulkan agora é a API gráfica oficial do Android. É uma API gráfica moderna 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 migração. Além disso, é possível ativar recursos avançados do Android XR, como URP Application Space Warp e 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 que você tenha acesso a todos os recursos avançados do Android XR sem 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 podem ser usados para o Android XR no Unity. Uma delas é usando as extensões do Android XR para Unity, e a outra é usando o pacote Unity OpenXR: Android XR.

Pode parecer a mesma coisa, mas aguarde 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 compatibilidade com dispositivos XR.


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


A escolha depende das suas necessidades específicas, mas geralmente recomendamos usar o Unity OpenXR: Android XR, porque ele oferece muito mais flexibilidade para os dispositivos compatíveis com seu app. Depois, 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 "Window" > "Package Management" > "Package Manager".

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

packagemanager.png

Para instalar o pacote do Android XR para Unity pelo GitHub, selecione o ícone ➕, escolha "Install package from git URL" e insira "https://github.com/android/android-xr-unity-package.git".

packagemanager2.png

Recursos obrigatórios do OpenXR

Agora que você instalou os pacotes necessários, vamos ativar alguns recursos principais para que o projeto funcione.

Para ativar a configuração do OpenXR no Android, clique em Edit > Project Settings > XR Plugin Management > Clique em Android e ative o OpenXR.

xrpluginmgmt.png

Em seguida, ative o suporte para "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 é compatível com entrada de dados por mãos, voz, acompanhamento ocular, teclado e controles. Recomendamos instalar o XR Interaction Toolkit e o XR Hands, porque eles contêm os melhores prefabs para começar. Ao usar esses elementos prefabricados, você terá tudo o que precisa para oferecer suporte a mãos e controladores no seu app.

xrinteractiontoolkit.png

Depois que os kits de ferramentas XR Hands e XR Interactive estiverem instalados, recomendo importar os recursos iniciais e a Demonstração de interação com as mãos. Em seguida, ative os perfis Interação com as mãos e Controlador simples do Khronos e ative os recursos Subsistema de rastreamento das mãos e Meta Hand Tracking Aim.

Para editar essas configurações, acesse Editar > Configurações do projeto > Gerenciamento de plug-ins XR > OpenXR.

profiles.png

Também recomendamos o prefab do Unity, Origem de XR, que representa a posição e a orientação do usuário no espaço de XR. Ele contém o suporte da 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 de mãos que importamos anteriormente. Ela pode ser encontrada aqui: "Hands Integration Toolkit" > "Hand Interaction" > "Prefabs" > "XR Origin"

prefabs.png

Recomendo usar esse prefab em vez da opção "Origem de XR" nos objetos do jogo, porque ele usa o gerenciador de modalidade de entrada de XR, que alterna automaticamente entre as mãos e os controladores dos usuários. Isso vai garantir o melhor sucesso ao trocar de mãos e controles.

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

Seja qual for o que você criar, será necessário capturar permissões de execução dos usuários. Isso 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 para o usuário.

Esses recursos fornecem informações pessoais mais detalhadas do que os apps tradicionais para computador ou dispositivos móveis. Por isso, as permissões de tempo de execução garantem que os usuários tenham controle total sobre os dados que escolhem compartilhar. Para seguir 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 personalizados com as mãos, será necessário solicitar a permissão de captura de movimentos das mãos (veja abaixo), já que 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 conferir uma lista completa de extensões que exigem permissões, acesse 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

Como melhorar a qualidade visual com camadas de composição

Uma camada de composição é a maneira recomendada de renderizar elementos de interface. Eles permitem mostrar 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 terá mais chances de apresentar texto desfocado, bordas suaves e artefatos visuais. Já com camadas de composição, o texto fica mais nítido, os contornos mais definidos e a experiência geral é melhor.


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

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

Criar e executar

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

Próxima etapa: aprimorar suas habilidades

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

Recursos essenciais para o aprendizado contínuo:

Exemplos de projetos para explorar:

Escrito por:

Continuar lendo