Exercício - Adicionar scripts de interação manual a um objeto

Concluído

O script ObjectManipulator suporta a modalidade de "manipulação direta" do modelo de entrada "mãos e controladores de movimento". 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, em seguida, moverá os cubos.

Adicionar e ajustar o primeiro cubo

  1. Na barra de menus, selecione GameObject>3D Object>Cube.

    Screenshot of menu commands for adding the cube.

    O tamanho padrão do cubo é de um metro quadrado - isso é muito grande para nossos propósitos. Vamos reduzir o tamanho para 20x20x20 cm.

  2. Selecione o cubo e, em seguida, no Inspetor, altere os valores de Transformação/Escala 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 de (0,0,0). Isso significa que o cubo está na mesma posição que o fone de ouvido do usuário, e o usuário não poderá ver o cubo até que ele se mova para trás. Alteraremos os valores de posição do cubo para que ele fique em um local melhor para visualização.

  3. No Inspetor, altere os valores Transform/Position do cubo para o seguinte:

    X = -0,2, Y = 1,6, Z = 0,5

    Screenshot of the cube's transform component after updates.

    Queremos ser capazes de ver três lados do cubo, então vamos mudar a rotação do cubo também.

    Nota

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

  4. No Inspetor, altere os valores Tranform/Rotation do cubo para o seguinte:

    X = 9, Y = 14, Z = 0

    Gorjeta

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

Adicionar os scripts ao cubo

Para que um objeto seja "agarrável" com as mãos rastreadas, ele deve ter três componentes conectados:

  • Um componente Collider (Você não precisa fazer nada aqui - o cubo do Unity já tem um Box Collider anexado por padrão)
  • Componente Manipulador de objetos (script)
  1. Com o cubo ainda selecionado, na janela Inspetor, selecione o botão Adicionar componente e, em seguida, procure e selecione o script Manipulador de objetos.

    Screenshot of adding the Object Manipulator script.

    O script ObjectManipulator torna um objeto móvel, dimensionável e rotativo com uma ou duas mãos. Quando você adiciona o script Object Manipulator, o script do Constraint Manager também é adicionado automaticamente porque o script Object Manipulator depende dele.

    Screenshot of the Constraint Manager script added to the cube.

Atualizar o material do cubo

Para fins de desempenho, recomenda-se usar materiais MRTK em vez dos materiais Unity padrão.

  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 em MRTK Standard Assets>Materials.

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 como "Perto do cubo".

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

    No momento, parece que há apenas um cubo na visualização Cena . Isso porque Near Cube e Far Cube estão no mesmo lugar exato. Vamos mudar a posição e rotação de Far Cube.

  4. Com Far Cube ainda selecionado, altere seus valores no componente Transform para o seguinte:

    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 Near cube à esquerda e Far Cube um pouco mais longe à direita. Para confirmar isso, na hierarquia, selecione Câmera principal (em MRTK XR Rig>Camera Offset) e, em seguida, olhe para a janela da câmera principal na janela Cena.

    Screenshot of the Main Camera view in the Scene window.

    Gorjeta

    Se pretender que a vista na janela Cena se assemelhe mais ao que a câmara vê, desloque-se na janela Cena. Poderá ter de definir as Clear Flags da câmara como Skybox se não for por predefinição.

Agarre e mova os cubos no modo Play

  1. Selecione o botão Reproduzir. Quando o projeto começa a ser reproduzido, a visualização muda para a janela Jogo .

    Screenshot of the Game window after entering Play mode.

    Nota

    Antes de Jogar, confirme se existe um Perfil válido definido em Configurações do>Projeto MRTK3.

  2. Selecione o botão de três pontos acima do canto superior direito da janela Jogo e, em seguida, selecione Maximizar.

    Screenshot of Maximize command for the Game window.

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

  4. Mova a mão simulada para mais perto do cubo até tocar o cubo na lateral ou na parte inferior.

    Screenshot of the simulated right hand touching the Near Cube.

  5. Selecione o botão esquerdo do mouse (isso faz com que a mão "agarre" o cubo) e, em seguida, arraste o cubo ao redor da cena.

    Screenshot of Move the cube.

    Para agarrar e mover Far Cube, 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 a mão do Far Cube até conseguir ver a ponta do ponteiro no cubo. Você pode ter que 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. Selecione o botão esquerdo do mouse (isso faz com que a mão se feche, assumindo o que chamamos de "gesto de beliscar") e, em seguida, arraste o cubo ao redor da 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 Unity.

Alterar a vista na cena

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

Simule a entrada manual

  • Para ativar 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 ativar a mão simulada esquerda, pressione e mantenha pressionada a tecla shift esquerda. Para retirar a mão, solte a chave.
  • Para mover qualquer uma das mãos pela cena, mova o mouse.
  • Para mover a mão para a frente ou para trás, gire a roda de rolagem do mouse.
  • Para simular o gesto de pinçar, selecione o botão esquerdo do mouse.
  • Para girar a mão, pressione e mantenha pressionada a barra de espaço + tecla CTRL (mão direita) ou a tecla shift esquerda + tecla CTRL (mão esquerda) e, em seguida, mova o mouse.

Mãos persistentes

  • Para ativar uma mão e mantê-la no ecrã sem continuar a premir uma tecla, prima T (mão esquerda) ou Y (mão direita). Para remover as mãos, pressione essas teclas novamente.

Crie seu aplicativo no Unity

  1. Na barra de menus, selecione Configurações de compilação de arquivo>....

  2. Na janela Configurações de compilação, selecione o botão Adicionar cenas abertas para adicionar sua cena atual à lista Cenas em compilação.

  3. Selecione o botão Construir .

  4. Na janela Criar Plataforma Universal do Windows, navegue até a pasta onde deseja armazenar sua compilação ou crie uma nova pasta e navegue até ela e, em seguida, selecione o botão Selecionar pasta para iniciar o processo de compilação.

    Screenshot of the location to save your build.

    Uma barra de progresso é exibida para informar como a compilação está procedendo.

(Opcional) Criar e implantar o aplicativo

Nota

A construção e o teste no HoloLens 2 não são obrigatórios. Como alternativa, você pode testar no emulador HoloLens 2 se não tiver um dispositivo. Os dispositivos podem ser adquiridos em HoloLens.com.

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

    Screenshot of File Explorer with the builds folder displayed.

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

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

    Gorjeta

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

    Nota

    Se você não vir "Dispositivo" como uma opção de destino no Visual Studio, talvez seja necessário alterar o projeto de inicialização da 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 criar para o dispositivo, o dispositivo deve estar no Modo de Desenvolvedor e emparelhado com o computador de desenvolvimento. Consulte a seção chamada "Ativando o modo de desenvolvedor" nesta página.

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

    • Se você estiver criando e implantando via Wi-Fi, selecione Máquina remota.

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

    • Se você estiver criando e implantando via USB, selecione Dispositivo.

    Screenshot of Visual Studio window with Device as the target.

  4. Defina sua conexão remota: na barra de menus, selecione Propriedades do projeto>.

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

  6. Selecione o Depurador para iniciar a lista suspensa e, em seguida, selecione Máquina Remota, se ainda não estiver selecionado.

    Importante

    Recomendamos que introduza manualmente o seu endereço IP em vez de depender da funcionalidade "Auto Detected". Para encontrar o seu endereço IP, no seu HoloLens, aceda a Atualizações de Definições > e Segurança > para programadores. O endereço IP está listado na parte inferior da janela em Ethernet.

  7. No campo Nome da máquina, 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 no HoloLens e iniciar automaticamente o aplicativo sem o depurador do Visual Studio anexado, selecione Depurar Iniciar Sem Depuração>.
    • Para implantar no HoloLens sem que o aplicativo seja iniciado automaticamente, selecione Criar>solução de implantação.

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

Emparelhar o dispositivo

Na primeira vez que implementar uma aplicação no HoloLens a partir do PC, ser-lhe-á pedido um PIN. Para criar um PIN:

  1. No HoloLens, vá para 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.

O seu PC está agora emparelhado com o HoloLens e pode implementar aplicações automaticamente. Repita estes passos para cada PC utilizado para implementar aplicações no HoloLens.

Executando seu aplicativo no HoloLens

  1. Depois que o aplicativo terminar de criar, no menu Iniciar do HoloLens, localize o bloco do aplicativo e selecione-o.

  2. Depois que o aplicativo for iniciado, entre em contato com o Cubo Próximo e, em seguida, agarre-o e arraste-o.

  3. Use o ponteiro distante para pegar o Far Cube e, em seguida, arraste-o.

    Gorjeta

    O HoloLens oferece mais flexibilidade do que quando você estava testando seu aplicativo no Unity. Você pode se mover fisicamente e usar o ponteiro distante no Cubo Próximo ou estender a mão e pegar o Cubo Distante!

Sugestões

  • Você também pode implantar no emulador HoloLens ou criar um pacote de aplicativo para sideload.

  • Você pode notar 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 a maior parte do tempo durante o desenvolvimento para entender como as alterações no aplicativo podem afetar o desempenho. Por exemplo, você pode monitorar seu aplicativo para garantir que a taxa de quadros seja de pelo menos 60 FPS.