Aprendiendo Realidad Mixta con Unity y el Kit de herramientas de realidad mixta (MRTK)
Tags: unity3d, ar, vr
Published: 2020-09-17 04:28:35

##Requisitos:
* PC con Windows 10.
* Windows 10 SDK 10.0.18362.0 o posterior.
* Unity 2019.2.X instalado o posterior.
* Conocimientos básicos en Unity.

El Mixed Reality Toolkit es un kit de herramientas multiplataforma para construir experiencias de realidad mixta para realidad virtual (VR) y realidad aumentada (AR). 

Nos da la capacidad de mover , rotar y escalar un objeto holográfico.

A continuación configuraremos el entorno en Unity para Windows Mixed Reality e importaremos Mixed Reality  Toolkit al proyecto, en este proyecto importaremos un cubo y utilizaremos para la manipulación directa con las manos (no te preocupes no es necesario mayor equipo que tu PC).

## Primer Paso: 

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/15xewxb2uesl39g1mtch.png)

Ingresaremos a Unity Hub y crearemos un nuevo proyecto 3D.

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/vkaoird9xevn0g1dns68.png)

En el Menú Unity seleccionaremos **File -> Build Settings**.
Seleccionaremos Universal Windows Platform y daremos clic en Switch Platform.
>Si al cambiar a la plataforma UWP se presenta un error revisa que tengas instalado correctamente el Windows 10 SDK 10.0.18362.0 o versiones posteriores.

## Habilitando la Realidad Virtual
En el menú Unity selecciona Edit -> Project Settings, nos permitirá abrir la ventana de la Configuración del proyecto.

En la ventana Project Settings seleccionaremos Player -> XR Settings.
Marque la casilla de verificación Virtual Reallity Supported para habilitar la realidad virtual.
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/28kd4qjl2u7osia4nb4z.png)


A continuación da clic en el icono + y selecciona Windows Mixed Reality para agregar el SDK de realidad mixta de Windows, unity se encargara de agregar el SDK.
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/bi2n99vrlblvnrsk0iar.png)

Despues de agregar el SDK es necesario:
* Establecer Depth Format en **16-bit depth**
* Marcar la casilla Enable Depth Buffer Sharing.
* Establecer Stereo Rendering Mode en **Single Pass Instanced**

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/scmcpwdxpx0wkgfniuqc.png)

##Importar y configurar Recursos.

En el menú Unity, seleccione window -> TextMeshPro -> Importar recursos esenciales de TMP.

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/ow1y3nuv945jme3c1h65.png)
Asegúrate de seleccionar All antes de importar todo el contenido.
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/vrjcdm04v75xj7kghkdb.png)

Ahora es necesario descargar el paquete MRTK Unity Foundation, te dejo el link oficial a continuación:

[MRTK Unity] (https://github.com/Microsoft/MixedRealityToolkit-Unity/releases)

 ![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/vi9br7jiruy11j9eboo4.png) 

En el menu Unity da clic en Assets -> Importar Paquete -> Custom Package.
En la ventana saliente selecciona el paquete: **Microsoft.MixedReality.Toolkit.Unity.Foundation.2.X.X.unitypackage** , el cual descargaste en link de arriba (Recuerda dar clic en All para importar todos los elementos).


Después de importar el paquete MRTK Foundation, aparecerá la ventana MRTK Project Configurator. Si la ventana no aparece, puedes abrirla a través del menú Unity.

En el menú Unity, seleccione Mixed Reality Toolkit > Utilities > Configure Unity Project.

En la ventana de configuración de MRTK, has clic en el menú desplegable de Audio Spatializer y selecciona **MS HRTF Spatializer**.
Asegúrese de que todas las opciones están marcadas y has clic en el botón Apply.

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/5fl0tkn5lghmctsqla8l.png)

En el menú Unity, selecciona Mixed Reality Toolkit > Add to Scene and Configure se agregaran dos objetos a la escena. (**Recuerda que este paso es muy importante**)

##Añadir interacción a la escena.

crearemos un objeto 3d en este caso un cubo
cambiaremos la escala del cubo a 0.25 en el eje "X", "Y" y "Z".
cambiaremos la posición del cubo a 0 en x , 0 en Y y 0.8 en Z.
Genial ahora agregaremos un componente a nuestro cubo en este caso buscaremos object manipulator y lo añadimos este script permite manipular el cubo con las manos.

Near Interaction Grabbable . Este script permitirá agarrar el objeto desde una distancia cercana.

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/j8uhqen4v8eln46813zk.png)

##mover el cubo en el juego

Da clic en Play.
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/wryq54mjdew5371svus1.png)

En la simulación preciosa la barra de espacio para empezar a interactuar, puedes usar la rueda del mouse para ajustar la distancia de la mano al cubo. Has clic con el botón izquierdo del mouse para agarrar el cubo y arrastrarlo.

Mientras presionas el botón de espacio presiona ctrl y has clic con el botón izquierdo del mouse para rotar el cubo.
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/dwbwhj0p0v2vrsr2xvfe.png)

Las teclas "T" y "Y" permiten simular la entrada de ambas manos.
puedes usar la barra de espacio y la rueda del mouse para escalar de tamaño el cubo.
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/8tfz2lyl1oueg3qpmpxr.png)

Referencias: [Microsoft Learn](https://docs.microsoft.com/en-us/learn/modules/mixed-reality-toolkit-project-unity/7-exercise-hand-interaction-objectmanipulator)