Portanto, nossa série de artigos sobre o Windows Mixed Reality está chegando ao fim. Nela, desenvolvemos do zero um aplicativo com realidade mista no Unity no formato trabalho de laboratório (trabalho de laboratório). Hoje é o acorde final em que falaremos de um tópico muito interessante - o HoloLens e a adaptação do projeto a esse dispositivo. Inscreva-se agora!

O guia inteiro será composto por 5 partes. Será reabastecido toda semana. Abaixo você pode ir para a parte que precisa.
Parte 1: Exportar aplicativo UWP para Windows Mixed Reality do Unity ;
Parte 2: Configurando o ambiente (VR) ;
Parte 3: Controladores ;
Parte 4: Som espacial ;
Parte 5: HoloLens e gráficos .
Hololen
Até agora, nosso aplicativo funciona apenas com um fone de ouvido imersivo. No entanto, ao fazer apenas algumas alterações no aplicativo, podemos implementar o suporte para todo o espectro de dispositivos de realidade mista (incluindo o HoloLens).
Como usamos o Mixed Reality Toolkit para controlar a câmera, implementar a interação e adicionar botões, precisamos fazer apenas algumas alterações no projeto.
Ocultando uma sala virtual
Precisamos escrever um script que determine em qual dispositivo nosso aplicativo está sendo executado - em um fone de ouvido imersivo ou em um dispositivo HoloLens. Se o aplicativo estiver sendo executado em um dispositivo HoloLens, devemos ocultar a sala virtual para que o usuário possa interagir com o ambiente real. Para fazer isso, primeiro adicionamos o elemento Tag à pré-fabricada RoomPrefab e, em seguida, acessaremos essa tag em nosso script.
1. Selecione a pré-fabricada RoomPrefab no painel Hierarquia.
2. Na lista suspensa Marca, no painel Inspetor, selecione Adicionar marca ....

3. Clique no sinal + para criar uma nova tag e atribua a ela o nome HMDUOnly.

4. Agora, clique novamente na pré-fabricada RoomPrefab no painel Hierarquia e selecione a marca HMDUOnly no menu suspenso Marca, no painel Inspetor.
Você pode selecionar objetos de jogo no script de
várias maneiras . Podemos adicionar uma tag a qualquer objeto que precisamos ocultar (se tivermos vários objetos) e ocultar cada um deles sequencialmente. Chamar o método FindGameObjectsWithTag não é a maneira mais ideal, mas é bastante adequado para nós.
5. No menu superior do Unity, selecione GameObject -> Create Empty.
6. No painel Hierarquia, altere o nome do GameObject vazio adicionado para GameManager.
7. No painel Inspetor, clique em Adicionar componente -> Novo script e atribua a esse script o nome GameManager, escolhendo C sharp como a linguagem de programação. Clique em Criar e adicionar para criar o script.
8. Para abrir o script do GameManager, clique duas vezes no painel Inspetor ou no painel Ativos.
9. Substitua o código de script do GameManager pelo código abaixo. Esse teste precisa ser executado apenas uma vez, no lançamento do aplicativo. Vamos executá-lo dentro da função Start () e excluir a função Update ().
using System.Collections; using System.Collections.Generic; using UnityEngine;
Por fim, para garantir que o aplicativo funcione corretamente no dispositivo HoloLens, precisamos deixar o fundo da câmera preto.
10. No painel Hierarquia, selecione o objeto MixedRealityCameraParent-> MixedRealityCamera. Role para baixo no painel Inspetor e selecione preto como o valor para o parâmetro Gerenciador de câmeras de realidade mista -> Configurações de exibição transparente -> Cor do plano de fundo (Gerenciador de câmeras de realidade mista -> Configurações de exibição transparente -> Cor de fundo).

Adicionando mapeamento espacial
Quase tudo está pronto! Agora precisamos ativar o
mapeamento espacial . A tecnologia de imagens espaciais fornece uma visão detalhada das superfícies físicas no ambiente HoloLens, permitindo que os desenvolvedores criem aplicativos de realidade mista que são impressionantes com sua probabilidade. No nosso caso, o mapeamento espacial permitirá que o usuário posicione os alto-falantes de maneira natural, para que não sejam obscurecidos por superfícies físicas.
Primeiro, verifique se os controles do objeto Caixa delimitadora (caixa delimitadora) responsáveis por mover e girar não estão ocultos.
1. Localize a pré-fabricada AppBarCustom na pasta Assets -> Prefabs no painel Project.
2. Defina o valor 0 para a propriedade Hover Offset Y Scale (Hover Offset Scale).

Agora vamos adicionar componentes de mapeamento espacial à cena.
3. Localize a predefinição SpatialMapping na pasta Ativos -> HoloTookit -> SpatialMapping -> Prefabs (Recursos -> HoloTookit -> Mapeamento Espacial -> Prefabs).
4. Arraste-o para o painel Hierarquia da nossa cena.

Gestos HoloLens
Até agora, todos os tipos de interação em nossa aplicação eram realizados usando controladores de movimento. Se o aplicativo for executado no dispositivo HoloLens (ou emulador), precisamos usar outra maneira de mover o alto-falante e alternar para ele no código do programa. O método BoundingBox também pode ser reutilizado para o HoloLens, mas queremos otimizar a interação fazendo algumas alterações.
1. Selecione a pré-fabricada Speaker no painel Project.
2. Clique em Adicionar componente -> Toque em para colocar. Este é um script para o HoloLens do MR Toolkit que permite ao usuário tocar objetos ou hologramas e movê-los facilmente no espaço.
3. Desative-o para que não seja iniciado por padrão. Para desativar um script, basta desmarcar a caixa ao lado de seu nome no painel Inspetor. Este componente também adicionará o script do Interpolator à pré-instalação do Speaker.

4. Inclua o script na pré-fabricada Speaker, escolhendo Add Component -> New Script e nomeie esse script como SpeakerMovement.
5. Edite o script - clique duas vezes nele e substitua o código do script pelo código abaixo.
using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.XR.WSA;
Ao especificar o espaço de nome para os cenários usados, usaremos o mesmo teste usado no script GameManager para ocultar a sala. Dessa vez, quando um dispositivo HoloLens for detectado, o teste desativará um script e ativará outro. Uma vez que alteramos a pré-fabricação de alto-falante, essa alteração afetará todos os alto-falantes da cena. Se você alterou uma das instâncias pré-fabricadas do Orador, clique em Aplicar no canto superior direito do painel Inspetor para atualizar essa pré-fabricação.
Feito! Agora você pode criar o aplicativo e executá-lo em um fone de ouvido imersivo ou dispositivo HoloLens e, em seguida, colocar os alto-falantes em qualquer lugar da sala, girá-los e controlá-los.
Gráficos (opcional)
Vamos ver como podemos melhorar o aspecto visual do nosso aplicativo, porque mesmo uma pequena melhoria pode mudar significativamente sua percepção. Se você quiser aprender a tornar o aplicativo ainda mais atraente sem muita dificuldade, use as instruções abaixo.
Adicionando uma skybox personalizada
1. No menu superior, selecione Janela -> Iluminação -> Configurações (Janela -> Iluminação -> Configurações).
2. Arraste o skyymorning.mat skybox da pasta Assets -> Textures para a propriedade Skybox Material.
Pós-processamento
Nota As ações a seguir podem ser executadas para qualquer câmera na cena, mas elas não podem ser visualizadas no editor.
1. Selecione o elemento MixedRealityCameraParent -> MixedRealityCamera no painel Hierarquia da cena.
2. Clique em Adicionar componente -> Comportamento de pós-processamento.
3. Localize o elemento CustomProfile.asset na pasta Assets -> PostProcessing e arraste-o para a propriedade Profile do script Post Processing Behavior.
Experimente o perfil de pós-processamento o quanto for necessário, mas lembre-se de que o
pós-processamento consome recursos .
Parabéns! Você completou esta prática.
O originalAutores: Eric Ahlstrom, cbarkerms, Madison Hight