Exercício - Adicionar scripts de interação manual a um objeto
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
Na barra de menus, selecione >>Cube.
O tamanho padrão do cubo é de um metro quadrado, que é muito grande para nossos propósitos. Vamos reduzir o tamanho para 20x20x20 centímetros.
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.
No Inspetor, altere os valores Transform/Position do cubo para o seguinte:
X = -0,2, Y = 1,6, Z = 0,5
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.
No Inspetor, altere os valores Tranform/Rotation do cubo para o seguinte:
X = 9, Y = 14, Z = 0 f
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 dois componentes conectados:
- Um componente do 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)
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.
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.
Atualizar o material do cubo
Para fins de desempenho, recomendamos o uso de materiais MRTK em vez dos materiais Unity padrão.
- Com o cubo ainda selecionado, localize a seção Materiais no componente Renderizador de malha.
- Substitua o material padrão pelo material MRTK_Standard_White, localizado em MRTK Standard Assets>Materials. Você pode arrastar e soltar o material do painel Projeto na seção Materiais .
Adicionar um segundo cubo
Na Hierarquia, clique com o botão direito do mouse no cubo e selecione Duplicar. O cubo duplicado aparece com o nome Cubo (1).
Clique com o botão direito do mouse no cubo original, selecione Renomear e nomeie o cubo como Near Cube.
Clique com o botão direito do mouse no cubo duplicado, selecione Renomear e nomeie o cubo como Far Cube.
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.
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 >) e, em seguida, olhe para a janela da câmera principal na janela Cena.
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
Selecione o botão Reproduzir. Quando o projeto começa a ser reproduzido, a visualização muda para a janela Jogo .
Nota
Antes de jogar, confirme se há um perfil válido definido em Configurações>do projeto MRTK3.
Selecione o botão de três pontos no canto superior direito da janela Jogo e selecione Maximizar.
Pressione a barra de espaço para fazer com que a mão direita simulada apareça na exibição.
Mova a mão simulada para mais perto do cubo até tocar o cubo na lateral ou na parte inferior.
Pressione o botão esquerdo do mouse (isso faz com que a mão "agarre" o cubo) e arraste o cubo ao redor da cena.
Para agarrar e mover Far Cube, usaremos o ponteiro distante anexado à mão simulada.
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.
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 a ponta do ponteiro aparecer no cubo.
Pressione o botão esquerdo do mouse (isso faz com que a mão se feche, assumindo o que chamamos de gesto de beliscar) e 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, pressione o botão esquerdo do mouse.
- Para girar a mão, pressione e mantenha pressionada a tecla CTRL + de espaço (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
Minimize a janela Reproduzir selecionando o botão de três pontos e, em seguida, desmarque Maximizar.
Na barra de menus, selecione Configurações de compilação de arquivo>....
Na janela Configurações de compilação , selecione o botão Adicionar cenas abertas para adicionar sua cena atual à lista Cenas em compilação .
Selecione o botão Construir .
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.
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. Você pode comprar dispositivos em HoloLens.com.
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 clique duas vezes no arquivo de solução para abri-lo no Visual Studio.
Configure o Visual Studio para HoloLens selecionando a configuração Master ou Release e a arquitetura ARM64 :
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. 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 construir para o seu dispositivo, o dispositivo deve estar no Modo de Desenvolvedor e emparelhado com o seu computador de desenvolvimento.; consulte Ativando o modo de desenvolvedor.
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.
- Se você estiver criando e implantando via USB, selecione Dispositivo.
Defina sua conexão remota: na barra de menus, selecione Propriedades do projeto>.
Na janela Páginas de propriedades do projeto, selecione >.
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.
No campo Nome da máquina, insira o endereço IP do dispositivo.
Defina o Modo de autenticação como Universal (protocolo não criptografado).
Conecte o HoloLens ao computador e siga um destes procedimentos no Visual Studio:
- 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.
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:
- No HoloLens, vá para Configurações > Atualizações e Segurança > para desenvolvedores.
- Selecione Emparelhar. Isso exibe o PIN no HoloLens.
- Insira o PIN na caixa de diálogo no Visual Studio.
- Após a conclusão do emparelhamento, selecione Concluído no HoloLens.
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
Depois que o aplicativo terminar de criar, no menu Iniciar do HoloLens, localize o bloco do aplicativo e selecione-o.
Depois que o aplicativo for iniciado, entre em contato com o Cubo Próximo, agarre-o e arraste-o.
Use o ponteiro distante para pegar o Cubo Distante 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 Diagnóstico no aplicativo. Você pode ativá-lo ou desativá-lo usando o comando de fala Toggle Diagnostics. 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.