Exercício – Adicionar interação manual com objectmanipulator

Concluído

O script ObjectManipulator dá suporte à modalidade de manipulação direta do modelo de entrada de controladores de movimento 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.

    Captura de tela dos comandos de menu para adicionar o cubo.

    O tamanho padrão do cubo é um metro cúbico, que é muito grande para nossos propósitos. Reduziremos o tamanho para 20 centímetros cúbicos.

  2. Selecione o cubo e, em seguida, no Inspetor, altere os valores de Escala do cubo na seção Transformar 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 Posição do cubo na seção Transformar para o seguinte:

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

    Captura de tela do componente de transformação do cubo após as atualizações.

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

  4. No Inspetor, altere os valores de Rotação do cubo nos valores da seção Transformar para o seguinte:

    X = 9, Y = 14, Z = 0

    Dica

    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 anexados:

  • 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 objeto (script)
  • Componente do Gerenciador de Restrições (script)
  1. Com o cubo ainda selecionado, na janela Inspetor , selecione o botão Adicionar Componente e procure e selecione o script manipulador de objeto .

    Captura de tela da adição do script do Manipulador de Objetos.

    O script do Manipulador de Objetos torna um objeto móvel, escalonável e rotacionável usando uma ou 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.

    Captura de tela do script do Gerenciador de Restrições adicionado ao cubo.

Atualizar o material do cubo

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

  1. Com o cubo ainda selecionado, localize e expanda 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. Você pode fazer isso arrastando o material diretamente para o campo Elemento na seção Materiais

Adicionar um segundo cubo

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

  2. Clique com o botão direito do mouse no cubo original, selecione Renomear e nomeie o cubo Perto do Cubo.

  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 seus valores em seu 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 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>Deslocamento da Câmera), e então olhe para a janela Câmera Principal na janela Cena.

    Captura de tela da exibição da Câmera Principal na janela de Cena.

    Dica

    Se você quiser que o modo de exibição na janela Cena se pareça mais com o que a câmera vê, role na janela Cena . Talvez seja necessário definir o Clear Flags da câmera para o Skybox se ele não for por padrão.

Segurar e mover os cubos no modo Executar

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

    Captura de tela da janela Jogo depois de entrar no modo de jogo.

    Observação

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

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

    Captura de tela do comando Maximizar para a janela do Jogo.

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

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

    Captura de tela da mão direita simulada tocando no Cubo Próximo.

  5. Clique no botão esquerdo do mouse (isso faz com que a mão "pegue" o cubo) e arraste o cubo ao redor da cena.

    Captura de tela da movimentação do cubo.

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

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

    Captura de tela do ponteiro distante da mão simulada.

  7. Aproxime mão do Cubo distante até que possa ver a ponta do ponteiro no cubo. Talvez seja necessário mover a mão em um movimento circular algumas vezes para que a ponta do ponteiro apareça no cubo.

    Captura de tela do ponteiro distante tocando no cubo.

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