Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.

Prévia do material em texto

REALIDADE VIRTUAL E 
AUMENTADA 
AULA 6 
 
 
 
 
 
 
 
Prof. Victor Emanuel Montes Moreira 
 
 
2 
CONVERSA INICIAL 
Nesta abordagem, vamos estudar sobre o desenvolvimento de aplicações 
para realidade virtual com Unity. Para as discussões propostas, você precisa ter 
conhecimentos básicos sobre Unity. Não precisa ter um headset de realidade 
virtual, vamos demonstrar como usar um simulador de controles para RV. 
Vamos começar importando todos os recursos necessários para criar uma 
aplicação em RV no Unity. Também veremos como podemos interagir na RV 
mesmo sem um headset. E, se esse for o seu caso, recomendamos que você 
passe alguns minutos se acostumando com os controles. 
Vamos compreender os principais componentes de uma aplicação de RV, 
desde câmera e controles até o gerenciador de entradas no sistema. Depois, 
vamos aprender como configurar a movimentação no espaço RV. Veremos 
como usar áreas de teletransporte e âncoras de teletransporte. 
Também veremos como interagir com objetos, desde formas de interação 
até a física do objeto na cena. E, por fim, aprenderemos a criar soquetes, ou 
seja, locais onde podemos colocar e fixar objetos. 
Lembre-se de que o Unity e as tecnologias de RV estão em constante 
evolução; por isso, você deve lidar com possíveis atualizações e mudanças. 
Vamos lá! 
TEMA 1 – PROJETO DE VR NO UNITY 
Vamos começar criando uma aplicação em realidade virtual. Vamos 
exemplificar em o Unity, usando a versão 2022.3.12f1 LTS. Se você estiver 
usando uma versão mais recente do Unity, certifique-se de usar a versão LTS. 
1.1 Plugins do Unity para realidade virtual 
Para configurar nosso projeto Unity para VR, precisaremos usar vários 
pacotes. Vamos começar habilitando o XR Plugin Management. Para isso, 
acesse Project Settings e faça a instalação. 
 
 
 
3 
Figura 1 – Instalando XR Plugin Management 
 
Esse é o principal pacote para projetos em XR (Mixed Reality). Esse 
pacote gerencia o diversos plugins que dão suporte a interações em realidade 
virtual e aumentada. 
Figura 2 – Habilitando Open XR 
 
Vamos começar habilitando o OpenXR. Ele fornece uma interface 
padronizada que permite configurar várias entradas XR, desde headsets mais 
simples como Oculus Go até o Oculus Quest 3, entre outros. Dessa forma, em 
um único projeto pode ser portado para várias plataformas (Unity Technologies, 
2022). 
 
 
4 
Ao habilitar o OpenXR, você precisa fazer alguns ajustes e corrigir alguns 
erros para executar o projeto. 
Figura 3 – Erros no Project Validation 
 
Em Project Validation, surgirão dois erros. Para o primeiro, é só clicar em 
Fix que o sistema faz o ajuste. Já para o segundo, você precisa clicar em Edit e 
encontrar a próxima tela. 
Figura 4 – Adicionando o Interaction Profiles 
 
Aqui precisamos escolher um dos perfis de interação. Você pode escolher 
qualquer um dos perfis, mas recomendamos que escolha o Oculus Touch 
Controller Profile. 
 
 
5 
Na mesma janela, certifique-se de que o Render Mode esteja definido 
como Multi-pass: 
• Multi-pass: renderiza a cena em duas imagens mostradas 
separadamente para cada olho e é a opção recomendada; 
• Single-pass: combina ambas as imagens em uma única textura de 
largura dupla, onde apenas a metade relevante é exibida para cada olho. 
1.2 Configurando interações de VR 
Lembre-se de que, para haver interações, são necessárias entradas 
(inputs) e saídas (output). Quando trabalhamos com realidade virtual, mais 
especificamente com headsets de VR, precisamos compreender que esse é um 
processo dinâmico, ou seja, a cada milissegundo essas interações acontecem. 
Grande parte desse processo se dá pelo rastreamento de posição do headset e 
dos controles, ou seja, você nem precisa pressionar um botão, o simples fato de 
existir um controle já faz com que aconteça uma entrada constante de dados. 
Por isso, precisamos de um ótimo gerenciador de interações (para a 
nossa sorte, o Unity já fornece). O XR Interaction Toolkit é uma ferramenta 
oferecida pela Unity para facilitar o desenvolvimento de experiências interativas 
em VR e AR. Ele é baseado em componentes, o que significa que você pode 
adicionar funcionalidades a objetos simplesmente anexando diferentes 
componentes a eles. Isso torna o processo de desenvolvimento mais modular e 
reutilizável (Unity Learn, 2024). 
Agora vamos instalar o XR Interaction Toolkit. Acesse Packge Manager e 
escolha Packges: Unity Registry. Lá podemos ver vários plugins do Unity; quase 
ao final da lista encontramos o XR Interaction Toolkit. 
 
 
 
6 
Figura 5 – Instalando pacote XR Interaction Toolkit 
 
Depois de instalar os recursos básicos, precisamos adicionar mais dois 
recursos no XR Interaction Toolkit. Clique em Samples e adicione os pacotes: 
Starter Assets e XR Device Simulator. 
Figura 6 – Adicionando Samples do XR Interaction Toolkit 
 
 
 
 
7 
1.3 Interagindo com a RV 
Depois dessa instalação básica, já podemos fazer a nossa primeira 
interação na realidade virtual. Na aba Project, clique em Assets > Samples > XR 
Interaction Toolkit > 2.5.4 > Starter Assets e entre na DemoScene. 
Figura 7 – Acessando DemoScene 
 
Lá você vai encontrar uma cena com diversos tipos de interação em RV. 
Figura 8 – Cena de demonstração do XR Interaction Toolkit 
 
Mas, se você não tiver um heardset de realidade virtual, não vai conseguir 
tirar proveito dessas interações. Então, vamos adicionar o XR Device Simulator. 
Acesse a pasta Assets > Sample s> XR Interaction Toolkit > 2.5.4 > XR Device 
Simulator, selecione o prefab (XR Device Simulator) e adicione na cena. 
 
 
 
8 
Figura 9 – Adicionando Prefab XR Device Simulator 
 
Você não vai precisar configurar nada, é só adicionar na cena. Quando 
apertar Play, verá os controles. 
Figura 10 – Acessando DemoScene com XR Device Simulator 
 
Recomendados que você passe algum tempo se familiarizando com os 
controles. Eles são bem difíceis de se acostumar. Verifique também todas as 
interações que colocamos nessa cena de demonstração. 
TEMA 2 – CRIANDO UMA CENA 
2.1 Criando uma cena com Prefabs do Starter Assets 
Agora, vamos criar uma cena para compreender melhor os elementos de 
interação para realidade virtual. Siga estes passos: 
1. Delete a Main Camera (que vem como padrão quando criamos uma cena 
nova); 
 
 
9 
2. Adicione um GameObject > 3D Object > Plane; 
3. Adicione o prefab XR Interaction Setup (clique em Assets > Samples > XR 
Interaction Toolkit > 2.5.4 > Starter Assets > Prefabs). 
Figura 11 – Acessando XR Origin Setup 
 
4. Adicione o XR Device Simulator (clique em Assets > Samples > XR 
Interaction Toolkit > 2.5.4> XR Device Simulator selecione o prefab (XR 
Device Simulator) e adicione na cena). 
A hierarquia de elementos na cena ficará como na Figura 12. 
Figura 12 – Hierarquia de elementos na cena 
 
Apenas com esses elementos, se você der play na cena, poderá andar e 
mexer os controles. 
2.2 XR Interaction Setup 
O elemento XR Interaction Setup que colocamos na cena é um prefab, ou 
seja, é um gameobject previamente criado. Nele, encontramos elementos 
necessários para a interação na realidade virtual. 
 
 
 
10 
Figura 13 – Hierarquia de elementos no XR Interaction Setup 
 
Vamos ver alguns dos principais elementos que fazem parte desse prefab. 
2.3 Input Action Manager 
Veja que no Input Action Manager existe apenas um script que faz uma 
referência ao XRI Default Input Actions. 
Figura 14 – Inspector do Input Action Manager 
 
Ao acessar o elemento XRI Default Input Actions, você contará o arquivo 
na pasta de assets. Ao abrir esse arquivo, você pode ver o gerenciador de 
controles por meio do Input System. 
 
 
 
11 
Figura 15 – Configuração do XRI Default Input Actions no Input System 
 
Aqui, você irá encontrar as referências de todas as entradas do sistema, 
desde o rastreamento do headset na cabeça até controles touchscreen oude 
gestos. 
2.4 XR Interaction Manager 
Para compreender o uso do Interaction Manager, precisamos entender a 
diferença entre Interactors e Interactables. 
• Interactors: são os elementos que permitem ao usuário interagir com o 
mundo virtual. Eles podem ser pensados como as mãos ou ferramentas 
que o usuário usa para interagir com objetos no ambiente virtual. 
• Interactables: são os GameObjects com os quais o usuário pode 
interagir. Eles podem ser qualquer coisa no mundo virtual que responda 
à interação do usuário, como botões, alavancas, objetos pegáveis etc. 
Nesse contexto, o Interaction Manager atua como um intermediário entre 
Interactors e Interactables. É possível ter vários Interaction Managers, cada um 
com seu próprio conjunto válido de Interactors e Interactables. Ao serem 
habilitados, tanto Interactors quanto Interactables se vinculam em um Interaction 
Manager. As cenas carregadas devem ter pelo menos um Interaction Manager 
para que Interactors e Interactables possam se comunicar. 
2.5 XR Origin (XR Rig) 
Atua como os olhos, ouvidos e mãos do jogador no ambiente virtual. 
Funciona como uma base para os sistemas de locomoção e/ou teletransporte, 
que permitem ao usuário se movimentar no mundo virtual. Ao adicionar um novo 
XR Origin, você irá encontrar a seguinte configuração. 
 
 
12 
Figura 16 – Componentes do XR Origin 
 
• Origin Base GameObject: determina o ponto de origem do objeto. Por 
padrão, colocamos o próprio gameobject; 
• Camera Floor Offset GameObject: esse é o objeto a partir do qual a 
câmera é deslocada; 
• Camera: a câmera usada para renderizar a cena, esse GameObject serve 
como chefe do XR Rig; 
• Tracking Origin Mode: essa configuração determina a localização do 
centro do mundo; 
• Camera Y Offset: determina a distância entre o solo e os olhos do 
jogador. 
Dessa forma, o XR Rig assume o controle da câmera principal na cena, 
colocando sob o controle de um objeto Camera Floor Offset, que coloca a 
câmera na altura especificada pelo Camera Y Offset. 
2.6 Criando uma cena em VR 
Agora, vamos criar uma cena para VR do zero. Crie uma cena, delete a 
Main Camera. Depois, adicione dois GameObjects: Interaction Manager e o XR 
Origin (VR). 
 
 
 
13 
Figura 17 – Criando dois GameObjects: Interaction Manager e o XR Origin (VR) 
 
Para compor a cena, adicione um Plane, crie um material verde e vincule 
esse material no Plane. Também adicione o Prefab XR Device Simulator se você 
não tiver um headset de realidade virtual. 
Figura 18 – Hierarquia de elementos na cena 
 
Agora, precisamos configurar os controles que serão usados. Expanda o 
XR Origin (XR Rig) e verifique os filhos Left Controller e Right Controller. 
 
 
 
14 
Figura 19 – Hierarquia dos controles 
 
Ao selecionar um desses objetos, você verá que o script XR Controller 
(Action-Based) está sem controles configurados. 
Figura 20 – XR Controller (Action-Based) sem controles configurados 
 
 
 
15 
Clique no ícone de Presets, e selecione a configuração de cada lado dos 
controles. Por exemplo, se for do Right Controller selecione XRI Default Right 
Controller. 
Figura 21 – Selecionado o Preset 
 
Depois de adicionar a configuração dos controles, você poderá interagir 
no ambiente virtual. Além disso, você pode adicionar uma esfera na base do 
controle. No mesmo componente, você encontrará o Model Prefab, no qual você 
pode colocar um Prefab para ficar na base onde estaria o controle. 
Figura 22 – Colocando um elemento no XR Controller (Action-Based) para servir 
como base do controle 
 
Aqui, colocamos uma esfera simples, com um material preto. 
 
 
 
16 
Figura 23 – Visualizando cena 
 
TEMA 3 – MOVIMENTAÇÃO 
Para interagir na realidade virtual, precisamos de diversas ferramentas 
para auxiliar e facilitar a navegação. 
3.1 Giro rápido 
Primeiro precisamos adicionar um mediador para o sistema locomoção 
(Murray, 2020). Vá no componente XR Rig e adicione um componente 
Locomotion System. No componente Locomotion System a propriedade Script 
estará vazia, nesse local você deve referências o XR Origin. 
Figura 24 – Adicionando Locomotion System 
 
 
 
17 
O Locomotion System é usado para mediar os acessos ao XR Origin. 
Esse sistema filtra os controladores de movimento possibilitando que apenas um 
sistema possa mover o XR Origin por vez (Unity Technologies, 2023). 
Agora vamos adicionar a funcionalidade de girar. Vá no XR Rig e adicione 
o componente Snap Turn Provider (Action-based). Ao adicionar o componente, 
a propriedade System (1) estará vazia (assim como fizemos anteriormente) link 
o XR Rig. Já a propriedade Turn Amount regula o giro no sentido horário, ou 
seja, cada vez que o jogador acionar essa propriedade, o XR Rig rotaciona 45º 
no sentido horário. Além disso, você vai precisar indicar os controles de 
referência. Clique para selecionar o Preset (3) e escolha a opção XRI Default 
Snap Turn. 
Figura 25 – Configurando Snap Turn Provider 
 
Para testar o giro, colocamos alguns objetos em cena para que possamos 
perceber melhor o giro do XR Rig. 
 
 
 
18 
Figura 26 – Colocando elementos na cena 
 
Para ver o giro usando o XR Device Simulator, primeiro acesse o (1) 
Controller. Você pode fazer isso usando a tecla Tab ou pressionando as teclas 
T ou Y. Ao entrar no modo de controle dos joysticks, você pode pressionar as 
teclas A ou D para ver o giro. 
Figura 27 – Testando o giro com controles 
 
3.2 Área de teletransporte 
Agora, vamos adicionar uma funcionalidade para melhorar a locomoção. 
Primeiro, você deve selecionar o XR Rig e adicionar a funcionalidade para se 
teletransportar. No XR Rig, adicione o componente Teleportation Provider 
(semelhante ao que fizemos anteriormente) em System link ou Locomotion 
System. 
 
 
19 
Figura 28 – Adicionando Teleportation Provider 
 
Para isso, precisamos adicionar a propriedade “área de teletransporte” no 
nosso plano. Selecione o plano do seu projeto e adicione o componente 
Teleportation Area. Esse componente precisa de referências de duas 
propriedades: (1) Interation Manager, no qual acionamos o XR Interaction 
Manager, e (2) Teleportation Provider no qual referenciamos o XR Rig. 
Figura 29 – Configurando Teleportation Area 
 
 
 
20 
Pronto! Agora você será capaz de se teletransportar para qualquer espeço 
em cima do objeto (Plane). Se estiver usando o XR Divece Simulator, você pode 
usar T ou Y para alternar um dos controladores, usar o mouse para mirar e 
pressionar G para ativar o teletransporte. 
3.3 Âncoras de teletransporte 
Agora, vamos fazer âncoras de teletransporte, ou seja, ao invés de nos 
movimentarmos livremente, vamos criar locais específicos para ancorar o 
teletransporte. Primeiro, remova o componente Teleportation Area que 
colocamos o objeto (Plane) anteriormente. Precisamos fazer isso para melhorar 
a nossa capacidade de mirar e encontrar o nosso plano de âncora. 
Agora, crie um objeto Plane (aqui nomeamos como 
PlaneTeleportAnchor), diminua de tamanho e posicione na frente de um dos 
objetos. Depois, adicione o componente Teleportation Anchor e faça as 
configurações em (1) Interaction Manager e (2) Teleportation Provider. 
Figura 30 – Configurando Teleportation Anchor 
 
 
 
21 
Agora, vamos colocar um plano na frente de cada objeto. Para agilizar o 
processo, crie um Prefab com o seu plano com Teleportation Anchor e adicione 
os Prefabs na cena. 
Figura 31 – Posicionando âncoras de teletransporte na cena 
 
Veja que, quando colocamos o laser point mirando o plano, o ele fica 
branco; se mirarmos em outro local, ele continua vermelho. 
Figura 32 – Visualizando áreas de teletransporte 
 
 
 
22 
TEMA 4 – INTERAÇÃO COM OBJETOS 
Agora, veremos como podemos pegar objetos na cena. Para que o 
jogador possa pegar um objeto na realidade virtual, precisamos adicionar o 
componente XR Grab Interactable. 
Figura 33 – XR GrabInteractable 
 
O XR Grab Interactable tem várias propriedades importantes, mas vamos 
apresentar aqui algumas das principais: 
• Movement Type (1): especifica como um objeto se move quando 
selecionado. 
• Velocity Tracking: o objeto interativo é movido definindo a velocidade e 
a velocidade angular do Rigidbody. Use isso se você não quiser que o 
objeto seja capaz de se mover por meio de outros Colliders sem um 
Rigidbody. Podemos usar essa função em portas que irão apenas abrir ou 
 
 
23 
fechar. Dessa forma, a porta se moveria com relação à velocidade da sua 
mão. 
• Kinematic: o objeto interativo é movido movendo o Rigidbody cinemático 
em direção à posição e orientação-alvo. Use isso se você quiser manter 
a representação visual sincronizada para corresponder ao seu estado 
físico e se quiser permitir que o objeto seja capaz de se mover por meio 
de outros Colliders sem um Rigidbody. 
• Instantaneous: o objeto interativo é movido definindo a posição e a 
rotação do Transform a cada quadro. Use isso se você quiser que a 
representação visual seja atualizada a cada quadro, minimizando a 
latência. No entanto, a desvantagem é que será capaz de se mover por 
meio de outros Colliders sem um Rigidbody. 
Em Track Position, habilite o movimento suave em Smooth Position (2) e 
Smooth Rotation (3). Dessa forma, o movimento de posição e rotação serão mais 
suaves e fluidos para o jogador. 
4.1 Attach Transform 
O Attach Transform (4) funciona como uma âncora para que o jogador 
pegue o objetivo. Normalmente, colocamos um GameObject vazio como filho e 
posicionamos o objeto vazio no local onde será pego. Depois, é só adicionar o 
link do objeto vazio no AtrachTransform. Além disso, veja que ao adicionar o 
componente XR Grab Interactable foi adicionado também o componente 
Rigidbody. 
Veja no exemplo que adicionamos um GameObject vazio como filho da 
Cube e posicionamos próximo a um vértice do cubo. 
 
 
 
24 
Figura 34 – Adicionamos um GameObject vazio como filho da Cube 
 
Depois, adicionamos o GameObject vazio no Attach Transform do objeto 
pai. Dessa forma, quando executamos a função de pegar o objeto, a sua âncora 
(GameObject) determina pela posição que pegamos o objeto. 
Figura 35 – Segurando o cubo pelo GameObject vazio 
 
Da mesma forma que você encontra o Attach Transform no objeto, 
também é possível configurar essa função no XR Origin (XR Rig). Ao acessar o 
Left Controller, e/ou o Right Controller, acesse o componente XR Ray Interactor. 
 
 
25 
Lá você irá encontrar Attach Transform e você pode usar a mesma técnica vista 
anteriormente. 
Figura 36 – Attach Transform no Left Controller 
 
4.2 Physical Material 
Encontramos no Unity uma possibilidade de configurar a fisicalidade de 
um objeto. O Physical Material é um ativo que podemos configurar as 
propriedades do colisor do material, ou seja, a fricção e a elasticidade. Para criar 
um Physical Material, clique em Create > Physical Material. 
 
 
 
26 
Figura 37 – Criando um material físico 
 
Ao criar um material físico você irá configurar suas propriedades. 
Figura 38 – Propriedades do Physic Material 
 
• Dynamic Friction: determina quanto de atrito a superfície do colisor tem 
contra o objeto quando eles estão se movendo ou deslizando um contra 
o outro. O valor 0 significa nenhum atrito (como gelo), enquanto um valor 
1 significa atrito muito alto (como borracha). 
• Static Friction: especifica o quanto de atrito a superfície do colisor tem 
contra o objeto quando os colisores não estão em movimento. O valor 0 
significa nenhum atrito (como gelo), enquanto um valor 1 significa atrito 
muito alto (como borracha). 
 
 
27 
• Bounciness (Elasticidade): define o quão saltitante ou elástica é a 
superfície e quanto outros colisores podem ricochetear no objeto. O valor 
0 significa que a superfície não é nada elástica (como argila macia) e 
outros colisores perdem energia cinética ao atingi-la. Já o valor 1 significa 
que a superfície é muito elástica (como a borracha) e outros colisores 
saltam sem qualquer perda de energia cinética. 
• Friction Combine: define como o sistema físico calcula o atrito entre dois 
colisores, com base no atrito de cada colisor. Essa seleção se aplica tanto 
ao atrito dinâmico quanto ao atrito estático. 
o Maximum: usa o maior dos dois valores; 
o Multiply: usa a soma de um valor multiplicado pelo outro; 
o Minimum: usa o menor dos dois valores; 
o Average: usa a média dos dois valores. 
• Bounce Combine: define como o sistema físico calcula o salto entre dois 
colisores, com base no valor de Bounciness de cada colisor. Usa os 
mesmos parâmetros do Friction Combine. 
Veja alguns exemplos de como podemos configurar os materiais físicos. 
Figura 39 – Exemplos de configuração para Physic Material 
Material de borracha Gelo Metal 
Dynamic Friction: 0,8 
Static Friction: 0,9 
Bounciness: 0,8 
Friction Combine: Maximum 
Bounce Combine: Average 
Dynamic Friction: 0.1 
Static Friction: 0.1 
Bounciness: 0,01 
Friction Combine: Multiply 
Bounce Combine: Multiply 
Dynamic Friction: 0.1 
Static Friction: 0.2 
Bounciness: 0 
Friction Combine: Minimum 
Bounce Combine: Average 
Aproveite para fazer alguns testes com os diferentes tipos de materiais 
físicos. Crie 3 Physic Material e vincule com objetos na sua cena, depois tente 
pegar e arremessar os objetos. Você verá como cada um desses materiais se 
comporta. 
TEMA 5 – SOQUETES PARA OBJETOS 
No campo da realidade virtual, é essencial criar experiências imersivas e 
interativas. Uma abordagem para alcançar isso é possibilitar que os usuários 
 
 
28 
manipulem objetos dentro do ambiente de RV para realizar ações específicas. 
Nesse contexto, vamos abordar o conceito de interação por meio de soquete e 
examinar como implementá-lo utilizando o XR Interaction Toolkit do Unity. 
5.1 Soquete 
O XR Socket Interactor é um componente disponibilizado pelo XR 
Interaction Toolkit no Unity. Ele serve para estabelecer um local particular, 
conhecido como soquete, onde um objeto pode ser inserido ou posicionado para 
desencadear uma ação ou comportamento específico. Essa ferramenta é 
especialmente útil para criar interações que demandam posicionamento preciso 
de objetos, como inserir uma chave em uma fechadura ou conectar um plugue a 
uma tomada. 
Aqui estão os principais aspectos associados ao XR Socket Interactor: 
• Attach Transform: essa propriedade especifica a transformação (posição 
e rotação) onde os objetos serão inseridos ou posicionados; 
• Interaction Layer Mask: semelhante a outros elementos interativos XR, 
é possível definir uma máscara de camada para indicar quais objetos 
podem interagir com o soquete; 
• Interactor Events: os Interatores do Soquete XR têm a capacidade de 
acionar eventos quando os objetos são inseridos ou removidos com 
sucesso do soquete. 
Veja um exemplo de como criar um Socket. Primeiro (1) criamos um objeto 
cubo que chamamos de Recipiente e colocamos um material com transparência 
para que possamos ver o nosso cubo dentro do recipiente. Depois, criamos um 
GameObject vazio como filho; nele colocamos um componente Sphere Collider 
(ative a função Is Trigger), que será o colisor que ativa o script XR Socket 
Interactor. Como filho do objeto Socket criamos um GameObject e chamamos 
de Attach Point. Posicione o objeto Attach Point no local em que será colocado 
o cubo; depois clique no objeto Socket e no XR Socket Interactor (2) e link esse 
objeto no Attach Tranform. 
 
 
 
29 
Figura 40 – Configurando recipiente do soquete 
 
Ao executar a aplicação, você verá algo como a Figura 41. Ao mover o 
cubo próximo do soquete (1), você verá um novo elemento (2), que é o indicativo 
de onde o cubo será colocado. 
Figura 41 – Interação entre objeto e soquete 
 
Depois, quando soltar, o cubo será posicionado no local do objeto Attach 
Point que criamos. 
 
 
 
30Figura 42 – Objeto colocado no soquete 
 
5.2 Hover Material 
O Hover Mesh Meterial é o material que aparece quando entramos na 
área de colisão no XR Socket Interactor. 
Figura 43 – Hover Mesh Material no XR Socket Interactor 
 
Por padrão, o Unity coloca um material standard em Hover Mesh Meterial. 
Podemos simplesmente configurar o material Strandard ou criar um material 
exclusivo. 
 
 
31 
Figura 44 – Criando um material exclusivo para Hover Mesh Material 
 
Dessa forma, você pode criar materiais específicos para cada soquete, 
dando ao jogador um feedback visual sobre os objetos e cores no soquete. 
Figura 45 – Visualizando o Hover Mesh Material 
 
 
 
32 
5.3 Múltiplos soquetes 
Quando temos múltiplos soquetes em cena precisamos especificar qual 
soquete vai o quê, ou seja, precisamos ter soquetes específicos para cada 
elemento. 
Selecione um objeto com o componente XR Socket Interactor. Ao clicar 
em Interaction Layer Mask, você verá algumas layers marcadas. No nosso caso, 
as layers estão marcadas como Everything e Default. 
Figura 46 – Interaction Layer Mask 
 
Para criarmos soquetes específicos para cada objeto, precisamos criar 
layer exclusiva. Então, ao clicar em Add layer... em Interaction Layers, podemos 
ver várias layers vazias. Vamos criar duas, uma com o nome Socket Red e outra 
com nome Socket Pink. 
 
 
 
33 
Figura 47 – Criando duas layers 
 
Depois, volte ao objeto e marque apenas a layer relativa ao objeto que 
queremos. 
Figura 48 – Configurando layer no soquete 
 
Depois, faça o mesmo com o objeto que será colocado no soquete. 
Figura 49 – Configurando layer no objeto 
 
 
 
34 
Ao executar a aplicação, você irá perceber que apenas quando a layer do 
objeto e do soquete coincidem é que será possível a inserção. 
Figura 50 – Inserindo objetos em soquetes específicos 
 
FINALIZANDO 
Chegamos ao final da nossa aventura pela realidade virtual. Aqui, demos 
os primeiros passos para criar uma aplicação de RV. O caminho na RV é longo 
e você verá várias atualizações e funções novamente pelo seu caminho. 
Recomendamos que você siga criando aplicações simples como a 
navegação em uma sala ou em uma casa. Implemente as funções básicas que 
vimos aqui, como giro rápido, área de teletransporte e âncoras de teletransporte. 
Você também deve avançar os seus conhecimentos sobre a interação 
com objetos, como pressionar botões, escalar parede, rotacionar objetos e 
outros. Na cena de exemplo do XR Interaction Toolik (DemoScene), você 
encontrará várias funções que podem ser aplicadas em diversos contextos. 
Até mais! 
 
 
 
35 
REFERÊNCIAS 
MURRAY, J. W. Building Virtual Reality with Unity and SteamVR. Second 
Edied. [S. l.]: CRC Press, 2020. 
UNITY LEARN. 1.1 - VR Project Setup - Unity Learn. [S. l.]: Unity Learn, 2024. 
Disponível em: . Acesso em: 26 maio 2024. 
UNITY TECHNOLOGIES. Locomotion System. [S. l.]: Unity Technologies, 
2023. Disponível em: 
. Acesso em: 26 maio 2024. 
______. Manual: OpenXR Plugin. [S. l.]: Unity Technologies, 2022. Disponível 
em: . Acesso em: 
26 maio 2024.

Mais conteúdos dessa disciplina