Exercício - Adicionar interação manual com objectmanipulator
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
Na barra de menus, selecione GameObject>3D Object>Cube.
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.
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.
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
Queremos ser capazes de ver três lados do cubo, então vamos mudar a rotação do cubo também.
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)
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 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.
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 e expanda a seção Materiais no componente Renderizador de Malha.
- 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
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 Near Cube.
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.
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.
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
Selecione o botão Reproduzir. Quando o projeto começa a ser reproduzido, a visualização alterna para a janela Game.
Observação
Antes de jogar, confirme se existe um Perfil válido definido em Configurações do Projeto>MRTK3.
Selecione o botão de três pontos acima do canto superior direito da janela Game e, em seguida, selecione Maximizar.
Mantenha pressionada a barra de espaço para fazer com que a mão direita simulada apareça na exibição.
Aproxime a mão simulada do Cubo Próximo até tocar no cubo pela lateral ou pela parte inferior.
Clique no botão esquerdo do mouse (isso faz com que a mão "agarre" o cubo) e arraste o cubo pela cena.
Para agarrar e mover o Far Cube, usaremos o ponteiro remoto anexado à mão simulada.
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.
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.
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.