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

Concluído

O script ObjectManipulator suporta a modalidade de manipulação direta do modelo de entrada para 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.

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

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

  2. Selecione o cubo e, em seguida, no Inspetor, altere os valores de escala na secção Transformar 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 de Posição do cubo na secção de Transformações 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 ser capazes de ver três lados do cubo, então vamos mudar a rotação do cubo também.

  4. No Inspetor, altere os valores de Rotação do cubo na seção Transform 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 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)
  • Componente Gerenciador de restrições (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 .

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

    O script Object Manipulator torna um objeto móvel, escalável e rotativo usando 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.

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

Atualizar o material do cubo

Para fins de desempenho, recomendamos o uso de materiais MRTK em vez dos materiais Unity padrão.

  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 Ativos padrão MRTK>Materiais. 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 aparece com o nome Cubo (1).

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

  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 Cena vista. 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 o Cubo Próximo à esquerda e o Cubo Distante um pouco mais longe à direita. Para confirmar isso, na Hierarquia, selecione a Câmera Principal (dentro de MRTK XR Rig>Camera Offset) e, em seguida, observe a janela da Câmera Principal na janela de Cena.

    Captura de ecrã da vista da Câmara Principal na janela Cena.

    Dica

    Se pretender que a vista na janela Cena se assemelhe mais ao que a câmara vê, desloque-se na janela Cena . Talvez tenha que definir o Clear Flags da câmara para Skybox, se não for por padrã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 alterna para a janela Game.

    Captura de ecrã da janela Jogo depois de entrar no modo Jogar.

    Observação

    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 Game e, em seguida, selecione Maximizar.

    Captura de ecrã do comando Maximizar para a janela Jogo.

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

  4. Aproxime a mão simulada do Cubo Próximo até tocar no cubo pela lateral ou pela parte inferior.

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

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

    Captura de ecrã de Mover o cubo.

    Para agarrar e mover o Far Cube, usaremos o ponteiro remoto anexado à mão simulada.

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

    Captura de ecrã do ponteiro remoto da mão simulada.

  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 a ponta do ponteiro aparecer no cubo.

    Captura de ecrã do ponteiro remoto a tocar no cubo.

  8. Clique no botão esquerdo do mouse (isso faz com que a mão se feche, assumindo o que chamamos de "gesto de beliscar"), em seguida, arraste o cubo ao redor da cena.