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 chegou, com tecnologia do Android XR! Este post faz parte da Semana de Destaques do Android XR, em que oferecemos recursos (posts, 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 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 possibilita a criação e a implantação de 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 maduros. 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 com componentes e modelos prontos para XR e ferramentas de simulação e teste de XR. E, 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 as configurações e 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.
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 File > Build Profile 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.

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 "Edit" > "Project Settings" > "Player" > "Android tab" > "Other settings" > "Graphics APIs".

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 recursos adicionais, 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 vai depender 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 "Window" > "Package Management" > "Package Manager".

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

packagemanager.png

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

packagemanager2.png

Recursos obrigató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: "Edit" -> "Project Settings" -> "XR Plugin Management" -> Clique no Android e ative o OpenXR

xrpluginmgmt.png

Em seguida, precisamos ativar o suporte para "Android XR support". 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 controles. 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 controles 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 de controle 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 "Edit" > "Project Settings" > "XR Plug-in Management" > "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 a 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 controles dos usuários. Isso vai oferecer o melhor sucesso para alternar entre mãos e controles.

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 manuais 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 possibilitam a exibição de elementos com uma qualidade muito maior em comparação com o pipeline de renderização padrão do Unity, já que tudo é renderizado diretamente para o 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 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 Package Manager, selecione "Unity Register" e instale "XR Composition Layers".

Criar e executar

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

Próximas etapas: ampliar 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 de XR:

Recursos essenciais para continuar aprendendo:

Projetos de exemplo para explorar:

Escrito por:

Continuar lendo