Exercício – Adicionar scripts de interação com mão a um objeto

Concluído

O script ObjectManipulator é compatível com a modalidade de "manipulação direta" do modelo de entrada "controladores de movimentos e mãos". Quando o script é anexado a um objeto, o usuário pode mover, dimensionar ou girar o objeto com as mãos. Neste exercício, você criará dois cubos, anexará os scripts necessários a eles e moverá os cubos.

Adicionar e ajustar o primeiro cubo

  1. Na barra de menus, selecione GameObject>Objeto 3D>Cubo.

    Screenshot of menu commands for adding the cube.

    O tamanho padrão do cubo é um metro quadrado, o que é muito grande para nossos objetivos. Vamos reduzir o tamanho para 20x20x20 cm.

  2. Selecione o cubo e, no Inspetor, altere os valores de Transformar/Escalar do cubo para o seguinte:

    X = 0.2, Y = 0.2, Z = 0.2

    O cubo foi colocado na cena na posição padrão (0, 0, 0). Isso significa que o cubo está na mesma posição que o headset do usuário, e o usuário não poderá vê-lo até se mover para trás. Alteraremos os valores de posição do cubo para que ele fique em um local melhor para exibição.

  3. No Inspetor, altere os valores de Transformar/Posicionar do cubo para o seguinte:

    X = 0.2, Y = 1.6, Z = 0.5

    Screenshot of the cube's transform component after updates.

    Queremos poder ver três lados do cubo, então vamos alterar a rotação do cubo também.

    Observação

    A altura do cubo é definida como 1,6 para corresponder à altura do Deslocamento da Câmera no MRTK XR Rig, colocando-o aproximadamente no nível dos olhos.

  4. No Inspetor, altere os valores de Transformar/Girar do cubo para o seguinte:

    X = 9, Y = 14, Z = 0

    Dica

    Para ampliar o cubo, selecione-o, verifique se o cursor está focalizando a janela Cena e pressione a tecla F. Você pode ampliar qualquer objeto dessa maneira.

Adicionar os scripts ao cubo

Para que um objeto possa ser "segurado" com mãos controladas, ele deve ter três componentes anexados:

  • Um componente do Colisor (você não precisa fazer nada aqui – o cubo do Unity já tem um Colisor de Caixa anexado por padrão)
  • Componente Object Manipulator (Script)
  1. Com o cubo ainda selecionado, na janela Inspetor, clique no botão Adicionar Componente e pesquise pelo script Manipulador de Objeto e selecione-o.

    Screenshot of adding the Object Manipulator script.

    O script ObjectManipulator torna um objeto móvel, dimensionável e girável usando uma ou as duas mãos. Quando você adiciona o script Manipulador de Objeto, o script Gerenciador de Restrição também é adicionado automaticamente, pois o script Manipulador de Objeto depende dele.

    Screenshot of the Constraint Manager script added to the cube.

Atualizar o material do cubo

Para fins de desempenho, é recomendável usar materiais do MRTK em vez dos materiais padrão do Unity.

  1. Com o cubo ainda selecionado, localize a seção "Materiais" no componente Renderizador de Malha.
  2. Substitua o material padrão pelo material MRTK_Standard_White, localizado emAtivos Padrão do MRTK>Materiais.

Adicionar um segundo cubo

  1. Na Hierarquia, clique com o botão direito do mouse no cubo e selecione Duplicar. O cubo duplicado aparece com o nome "Cubo (1)".

  2. Clique com o botão direito do mouse no cubo original, selecione Renomear e nomeie o cubo "Cubo próximo".

  3. Clique com o botão direito do mouse no cubo duplicado, selecione Renomear e nomeie o cubo "Cubo distante".

    No momento, parece que há apenas um cubo no modo de exibição Cena. Isso ocorre porque o Cubo próximo e o Cubo distante estão exatamente no mesmo lugar. Vamos alterar a posição e a rotação do Cubo distante.

  4. Com o Cubo distante ainda selecionado, altere os valores no componente Transformar dele para os seguintes:

    Posição: X = 0.6, Y = 1.6, Z = 1.1

    Rotação: X = 27, Y = 0, Z = 0

    Agora, a câmera deve ver o Cubo próximo à esquerda e o Cubo distante um pouco mais à direita. Para confirmar isso, na Hierarquia, selecione Câmera Principal (em MRTK XR Rig>Camera Offset) e procure na janela Câmera Principal na janela Cena.

    Screenshot of the Main Camera view in the Scene window.

    Dica

    Se você quiser que o modo de exibição na janela Cena fique mais parecido com o que a câmera vê, role pela janela Cena. Talvez seja necessário definir os Sinalizadores Desmarcados da câmera para o Skybox se ele não estiver definido por padrão.

Segurar e mover os cubos no modo Executar

  1. Selecione o botão Reproduzir. Quando o projeto começar a ser executado, a exibição mudará para a janela Jogo.

    Screenshot of the Game window after entering Play mode.

    Observação

    Antes de reproduzir, confirme se há um conjunto de perfis válido em Configurações do Projeto>MRTK3.

  2. Clique no botão de três pontos acima do canto superior direito da janela Jogo e selecione Maximizar.

    Screenshot of Maximize command for the Game window.

  3. Pressione a barra de espaço para que a mão direita simulada apareça na exibição.

  4. Mova a mão simulada para perto do Cubo próximo até que ela toque o cubo na parte lateral ou inferior.

    Screenshot of the simulated right hand touching the Near Cube.

  5. Clique no botão esquerdo do mouse (isso faz a mão "segurar" o cubo) e arraste o cubo pela cena.

    Screenshot of Move the cube.

    Para segurar e mover o Cubo distante, usaremos o ponteiro distante anexado à mão simulada.

  6. Se precisar, pressione a barra de espaço novamente para fazer com que a mão direita simulada apareça. Observe o ponteiro distante que se estende da extremidade do dedo indicador da mão.

    Screenshot of simulated hand's far pointer.

  7. Aproxime mão do Cubo distante até que possa ver a ponta do ponteiro no cubo. Talvez você precise mover a mão em um movimento circular algumas vezes para fazer com que a ponta do ponteiro apareça no cubo.

    Screenshot of the far pointer touching the cube.

  8. Clique no botão esquerdo do mouse (isso faz a mão fechar, o que chamamos de "gesto de pinçagem") e arraste o cubo pela cena.

Simulação de entrada no editor do Unity

Você pode testar o comportamento do objeto holográfico com os recursos de simulação de entrada no editor do Unity.

Alterar a exibição na cena

  • Para mover a câmera para frente/para a esquerda/para trás/para a direita, use as teclas W/A/S/D.
  • Para mover a câmera verticalmente, pressione as teclas Q e E.
  • Para girar a câmera, pressione o botão direito do mouse e arraste.

Simular entrada manual

  • Para habilitar a mão direita simulada, pressione e segure a barra de espaço. Para remover a mão, solte a barra de espaço.
  • Para habilitar a mão esquerda simulada, pressione e segure a tecla SHIFT esquerda. Para remover a mão, solte a tecla.
  • Para mover qualquer uma das mãos pela cena, mova o mouse.
  • Para mover a mão para frente ou para trás, gire a roda de rolagem do mouse.
  • Para simular o gesto de pinçagem, clique no botão esquerdo do mouse.
  • Para girar a mão, pressione e segure a barra de espaço + tecla CTRL (mão direita) ou a tecla SHIFT esquerda + CTRL (mão esquerda) e mova o mouse.

Mãos persistentes

  • Para habilitar uma mão e mantê-la na tela sem precisar manter uma tecla pressionada, pressione T (mão esquerda) ou Y (mão direita). Para remover as mãos, pressione as teclas novamente.

Compilar o aplicativo no Unity

  1. Na barra de menus, selecione Arquivo>Configurações de Build....

  2. Na caixa de diálogo Configurações de Compilação, clique no botão Adicionar Cenas Abertas para adicionar a cena atual à lista Cenas em Compilação.

  3. Selecione o botão Compilar.

  4. Na janela Compilar Plataforma Universal do Windows, navegue até a pasta em que deseja armazenar sua compilação ou crie uma pasta, navegue até ela e clique no botão Selecionar Pasta para iniciar o processo de compilação.

    Screenshot of the location to save your build.

    Uma barra de progresso aparece informando como o build está prosseguindo.

(Opcional) Compilar e implantar o aplicativo

Observação

A criação e o teste no HoloLens 2 não são obrigatórios. Como alternativa, você poderá testar no Emulador do HoloLens 2 se não tiver um dispositivo. Os dispositivos podem ser comprados em HoloLens.com.

  1. Quando o processo de build for concluído, o Explorador de Arquivos do Windows abrirá e exibirá a pasta de build. Navegue dentro da pasta e clique duas vezes no arquivo da solução para abri-la no Visual Studio:

    Screenshot of File Explorer with the builds folder displayed.

  2. Configure o Visual Studio para o HoloLens selecionando a configuração Mestre ou Versão e a arquitetura ARM64:

    Screenshot of Visual Studio window with the build options for the project.

    Dica

    Se você estiver implantando no HoloLens (1ª geração), selecione a arquitetura x86.

    Observação

    Se o Dispositivo não for exibido como uma opção de destino no Visual Studio, talvez seja necessário alterar o projeto de inicialização para a solução do projeto IL2CPP para o projeto UWP. Para fazer isso, no Gerenciador de Soluções, clique com o botão direito do mouse em [nome do projeto](Universal Windows) e selecione Definir como Projeto de Inicialização.

    Importante

    Antes de compilar no dispositivo, ele precisa estar no Modo de Desenvolvedor e emparelhado com o computador de desenvolvimento. Confira a seção denominada "Habilitando o modo de desenvolvedor" nesta página.

  3. Selecione a lista suspensa de destino de implantação e siga um dos procedimentos a seguir:

    • Se você estiver criando e implantando por meio do Wi-Fi, selecione Computador Remoto.

    Screenshot of Visual Studio window with Remote Machine as the target.

    • Se você estiver criando e implantando por meio do USB, selecione Dispositivo.

    Screenshot of Visual Studio window with Device as the target.

  4. Defina a conexão remota: na barra de menus, selecione Projeto > Propriedades.

  5. Na janela Páginas de Propriedades do projeto, selecione Propriedades de Configuração > Depuração.

  6. Clique no menu suspenso Depurador para iniciar e selecione Computador Remoto se ainda não estiver selecionado.

    Importante

    É recomendável inserir manualmente seu endereço IP em vez de depender do recurso "Detectado Automaticamente". Para localizar o endereço IP, em seu HoloLens, acesse Configurações > Atualizações e Segurança > Para desenvolvedores. O endereço IP é listado na parte inferior da janela em Ethernet.

  7. No campo Nome do Computador, insira o endereço IP do seu dispositivo.

    Remote connection dialog in Visual Studio

  8. Defina o Modo de Autenticação como Universal (protocolo não criptografado).

  9. Conecte o HoloLens ao computador e, no Visual Studio, siga um destes procedimentos:

    • Para implantar em seu HoloLens e iniciar automaticamente o aplicativo sem o depurador do Visual Studio anexado, selecione Depurar>Iniciar sem depurar.
    • Para implantar em seu HoloLens sem que o aplicativo seja iniciado automaticamente, selecione Build>Implantar solução.

    Screenshot of Visual Studio with the Start Without Debugging menu item displayed.

Como emparelhar o dispositivo

Na primeira vez que implantar um aplicativo no HoloLens por meio do computador, você deverá fornecer um PIN. Para criar um PIN:

  1. Em seu HoloLens, acesse Configurações > Atualizações e Segurança > Para desenvolvedores.
  2. Selecione Emparelhar. Isso exibe o PIN no HoloLens.
  3. Insira o PIN na caixa de diálogo no Visual Studio.
  4. Após a conclusão do emparelhamento, no HoloLens, selecione Concluído.

Agora, o computador está emparelhado com o HoloLens e você pode implantar aplicativos automaticamente. Repita essas etapas para todos os computadores usados para implantar aplicativos no HoloLens.

Executando o aplicativo no HoloLens

  1. Após a conclusão da compilação do aplicativo, no menu Iniciar do HoloLens, localize o bloco do aplicativo e selecione-o.

  2. Depois que o aplicativo for iniciado, alcance o Cubo próximo e, em seguida, segure-o e arraste-o.

  3. Use o ponteiro distante para segurar o Cubo distante e, em seguida, arraste-o.

    Dica

    O HoloLens proporciona mais flexibilidade do que quando você estava testando o aplicativo no Unity. Você pode mover-se fisicamente e usar o ponteiro distante no Cubo próximo ou alcançar e segurar o Cubo distante com sua mão!

Dicas

  • Você também pode implantar no Emulador do HoloLens ou criar um Pacote do Aplicativo para sideload.

  • Você pode observar o Criador de perfil de diagnóstico no aplicativo. Você pode ativá-lo ou desativá-lo usando o comando de fala "Alternar diagnóstico". Recomendamos que você mantenha o criador de perfil visível na maior parte do tempo durante o desenvolvimento para que possa entender quando as alterações no aplicativo podem afetar o desempenho. Por exemplo, você pode monitorar o aplicativo para garantir que a taxa de quadros seja de pelo menos 60 FPS.