Exercício - Crie posicionamentos inteligentes de objetos com solucionadores

Concluído

Os solvers são um dos componentes do Mixed Reality Toolkit (MRTK). Vamos dar uma olhada em dois tipos de solvers e suas respetivas funcionalidades.

Localização dos solvers no MRTK

Os solvers do MRTK estão localizados na pasta MRTK SDK. Para ver os solucionadores disponíveis em seu projeto, na janela Projeto, vá para Pacotes>MRTK Spatial Manipulation>Solvers.

Screenshot that shows the location of the solvers folder.

O solucionador de indicadores direcionais

Use o solucionador de indicadores direcionais para direcionar o usuário para objetos. Saiba como:

  1. Na janela Projeto, vá para Ativos>MRTK. Tutoriais.GettingStarted>Pré-fabricados. Arraste o pré-fabricado Chevron para a janela Hierarchy e defina sua Transform Position como X = 0, Y = 1.5, Z = 2 para posicioná-lo perto do objeto RoverExplorer .

    Screenshot that shows the newly added Chevron prefab selected.

  2. Renomeie o objeto Chevron recém-adicionado para Indicador. Em seguida, na janela Inspetor , selecione Adicionar componente para adicionar o DirectionalIndicator.

    Screenshot that shows the DirectionalIndicator solver component added.

  3. Configure os componentes DirectionalIndicator e SolverHandler da seguinte maneira:

    a. Verifique se o Tipo de Destino Rastreado do componente SolverHandler está definido como Head.

    b. Atribua o RoverExplorer ao Destino Direcional do componente DirectionalIndicator, arrastando-o da Hierarquia para o campo Nenhum (Transformar).

    c. Altere o deslocamento da exibição para 0.2.

    Screenshot that shows the DirectionalIndicator solver component configured.

  4. Para entrar no modo de jogo , pressione Play. Pressione e segure o botão direito do mouse enquanto move o mouse para a esquerda ou direita para girar a direção do olhar.

    Observe que quando você desviar o olhar do objeto RoverExplorer, o objeto Indicator aparecerá e apontará para o objeto RoverExplorer.

    Screenshot that shows the Play mode split view with DirectionalIndicator solver in use.

O solucionador Tap To Place

Use o solucionador Tocar para colocar para reposicionar objetos. Saiba como:

  1. Na janela Hierarchy, selecione o objeto RoverExplorer>RoverAssembly. Em seguida, no Inspetor, use Adicionar componente para adicionar o componente Tocar para inserir. Configure o componente da seguinte maneira:

    a. Verifique se o Tipo de Destino Rastreado do componente SolverHandler está definido como Head.

    b. Desmarque a opção Usar Deslocamento Normal de Superfície Padrão e verifique se Deslocamento Normal de Superfície está definido como 0.

    c. Marque a caixa de seleção Manter orientação vertical .

    Screenshot that shows the Tap To Place solver component added and configured.

  2. Em seguida, use Add Component para adicionar o componente Stateful Interactable . Na janela Inspetor, localize o evento On Clicked (). Selecione o + ícone para adicionar um novo evento. Configure o evento da seguinte maneira:

    a. Atribua o objeto RoverAssembly como ouvinte para o evento On Clicked (), arrastando-o da Hierarquia para o campo Nenhum (Objeto).

    b. Na lista suspensa Sem função, selecione TapToPlace>StartPlacement() para chamar esse método quando o evento for acionado.

    Screenshot that shows the Tap To Place On Placing Started event configured.

  3. Com o objeto RoverAssembly ainda selecionado na janela Hierarchy, na janela Inspetor, localize o evento On Putting Started (). Selecione o + ícone para adicionar um novo evento.

    Screenshot that shows the Tap To Place On Placing Started event added.

  4. Configure o evento da seguinte maneira:

    a. Atribua o objeto RoverAssembly como ouvinte para o evento Ao colocar iniciado (), arrastando-o da hierarquia para o campo Nenhum (objeto).

    b. Na lista suspensa Sem Função, selecione TapToPlace>float SurfaceNormalOffset para atualizar o valor da propriedade SurfaceNormalOffset quando o evento for acionado.

    c. Verifique se o argumento está definido como 0.

    Screenshot that shows the Tap To Place On Placing Started event configured.

  5. Em Hierarquia, clique com o botão direito do mouse em um local vazio. Selecione Cubo de objeto 3D para criar um objeto>temporário que represente o solo e configure o componente Transformar da seguinte maneira:

    • Posição: X = 0, Y = 0,15, Z = 6
    • Rotação: X = 0, Y = 0, Z = 0
    • Escala: X = 10, Y = 0,2, Z = 10

    Screenshot that shows the temporary ground Cube object added and positioned.

  6. Para entrar no modo de jogo , pressione Play. Em seguida, pressione e segure o botão direito do mouse enquanto move o mouse para baixo, até que o olhar atinja o objeto RoverAssembly .

    Screenshot that shows the Play mode split view, with gaze hitting the RoverAssembly object.

  7. Mantenha pressionada a barra de espaço e clique no botão esquerdo do mouse para fazer um toque aéreo e iniciar o processo de toque no local.

    Screenshot that shows the Play mode split view, with placing started.

  8. Pressione e segure o botão direito do mouse enquanto move o mouse para a esquerda ou direita para girar a direção do olhar. Quando estiver satisfeito com o posicionamento, mantenha pressionada a barra de espaço e clique no botão esquerdo do mouse para fazer um toque aéreo final.

    Screenshot that shows the Play mode split view, with placing ended.

  9. Quando terminar de testar o recurso no modo Jogo, clique com o botão direito do mouse no objeto Cubo e selecione Excluir para removê-lo da cena.

    Screenshot that shows how to delete the temporary ground Cube.