Exercício – adicionar interação manual com o objectmanipulator
O script ObjectManipulator é compatível com a modalidade de manipulação direta do modelo de entrada de controladores de movimentos 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
Na barra de menus, selecione GameObject>Objeto 3D>Cubo.
O tamanho padrão do cubo é um metro cúbico, o que é grande demais para nós. Reduziremos o tamanho para 20 centímetros cúbicos.
Selecione o cubo e, no Inspector, altere os valores de Escala do cubo na seção Transformar 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.
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
Queremos poder ver três lados do cubo, então vamos alterar a rotação do cubo também.
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, certifique-se de que o cursor esteja 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 possa ser "segurado" com mãos controladas, 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 do Object Manipulator (script)
- Componente do Constraint Manager (Script)
Com o cubo ainda selecionado, na janela Inspetor, clique no botão Adicionar Componente e pesquise pelo script Manipulador de Objeto e selecione-o.
O script do Object Manipulator torna um objeto móvel, escalonável e giratório 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.
Atualizar o material do cubo
Para fins de desempenho, é recomendável usar os materiais do MRTK em vez dos materiais padrão do Unity.
- Com o cubo ainda selecionado, localize e expanda a seção Materiais no componente Mesh Renderer.
- Substitua o material padrão pelo material MRTK_Standard_White, localizado emAtivos Padrão do 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 aparecerá com o nome Cubo (1).
Clique com o botão direito do mouse no cubo original, selecione Renomear e nomeie o cubo como Cubo Próximo.
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 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.
Com o Cubo distante ainda selecionado, altere os valores no componente Transformar dele para os seguintes:
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, em seguida, examine a janela Câmera Principal na janela Cena.
Dica
Se você quiser que o modo de exibição na janela Cena fique mais parecido com o que a câmera vê, role pela janela Cena. Talvez seja necessário definir Limpar Sinalizadores da câmera como Skybox se não estiver definido como padrão.
Segurar e mover os cubos no modo Executar
Selecione o botão Reproduzir. Quando o projeto começar a ser executado, a exibição mudará para a janela Jogo.
Observação
Antes de reproduzir, confirme se há um conjunto de Perfis válido em Configurações do Projeto>MRTK3.
Clique no botão de três pontos acima do canto superior direito da janela Jogo e selecione Maximizar.
Pressione e segure a barra de espaços para fazer com que a mão direita simulada apareça na exibição.
Mova a mão simulada para mais perto do Cubo Próximo até que ela toque no cubo na lateral ou na parte inferior.
Clique no botão esquerdo do mouse (isso faz a mão "segurar" o cubo) e arraste o cubo pela cena.
Para segurar e mover o Cubo distante, usaremos o ponteiro distante anexado à mão simulada.
Se precisar, pressione e segure a barra de espaços 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 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.
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 pela cena.