Cómo crear su primera aplicación HoloLens con Unity

HoloLens de Microsoft es bastante increíble. Me lo presentaron en mi pasantía este verano, y me lo he pasado genial desarrollándolo.

Las aplicaciones HoloLens se crean utilizando DirectX con C ++ o Unity con C #. Descubrí que, en general, es más rápido y fácil poner en marcha una aplicación con Unity.

En este artículo, configuraremos Unity para el desarrollo de HoloLens, crearemos un cubo interactivo y pondremos en marcha el emulador de HoloLens para que pueda ver su creación. Este artículo está destinado a los principiantes totales de Unity, por lo que si tiene experiencia con el editor, le recomendaría seguir los tutoriales de Microsoft.

Prerrequisitos

  1. Una PC con Windows 10 con la actualización de abril de 2018
  2. El emulador de HoloLens que puede descargar aquí
  3. Visual Studio 2017: la edición de la comunidad está bien
  4. Unity: asegúrese de agregar el componente de backend de secuencias de comandos de Windows .NET durante la instalación
  5. El HoloToolKit

Puede encontrar el código fuente completo aquí.

Preparar

Abre Unity. Si es la primera vez que usa el editor, se le pedirá que inicie sesión o se registre. Recomendaría Unity Personal a menos que planee monetizar su aplicación.

Después de iniciar sesión, cree un nuevo proyecto e ingrese un nombre. Debería ser recibido con esta pantalla después de que el proyecto complete la configuración inicial.

Haga clic derecho en la carpeta Activos en la esquina inferior izquierda. Vaya a Importar paquete -> Paquete personalizado y abra el archivo de unidad HoloToolKit que descargamos anteriormente. Aparecerá una ventana emergente de Unity, haga clic en Todos e importe los activos.

A continuación, crearemos nuestra escena. Seleccione Archivo -> Nueva escena y guárdelo como Principal.

Unity necesita una configuración especial para crear un proyecto para HoloLens. Afortunadamente, HoloToolKit tiene scripts de utilidad que hacen esta configuración por nosotros. En la barra de herramientas superior, seleccione Kit de herramientas de realidad mixta -> Configurar -> Aplicar configuración de proyecto de realidad mixta. Utilice los valores predeterminados. Una vez finalizada la configuración, aplique la Configuración de escena de realidad mixta. Elimina el GameObject de luz direccional.

¡Increíble! Hasta ahora, hemos importado HoloToolKit y configurado Unity para el desarrollo de HoloLens. En la siguiente sección te presentaré los conceptos básicos de Unity, y luego obtendremos un cubo para renderizar en la pantalla.

Familiarizarse con el editor

Así es como debería verse el editor en este momento. Observe las tres áreas encuadradas:

El área roja a la izquierda es el panel de jerarquía de escenas. Aquí podemos agregar nuevos GameObjects y obtener una descripción general de alto nivel de la aplicación actual.Un GameObject es una clase base para todas las entidades de Unity. Pueden ser un objeto físico como un cubo o una colección de scripts como el Administrador de entrada en la escena.

El área azul inferior contiene el menú de activos y la consola. El menú de activos es exactamente lo que parece: contiene los scripts, materiales, prefabricados y mallas de C # necesarios para ejecutar su aplicación.

El área verde de la derecha es el menú del inspector. Aquí es donde puede agregar y modificar los componentes de sus GameObjects. Los componentes son los que componen el comportamiento de tus GameObjects. Ellos determinan el aspecto, la interactividad y la física de sus padres.

Creando un cubo

Ahora obtendremos nuestro primer GameObject para renderizar en la pantalla. En el panel de jerarquía de escenas, haga clic derecho y seleccione Objeto 3D -> Cubo. Debería aparecer un cubo en el editor.

Haga doble clic en Cubo en el panel de jerarquía, y en el panel del inspector derecho cambie la posición a (0,0,2). Establezca la escala en (.25, .25, .25). Su panel de inspectores debería verse así:

¡Agradable! Repasemos los pasos de compilación para que podamos ver nuestro cubo en el emulador de HoloLens.

En Unity, seleccione Archivo-> Configuración de compilación. Debería aparecer la ventana emergente de compilación, así que presione el botón de compilación. En la ventana emergente de la carpeta, cree una nueva carpeta llamada Aplicación y selecciónela como destino de compilación.

Una vez completada la compilación, abra la solución de Visual Studio en la carpeta Aplicación. Cambie las opciones de depuración a Release, x86 y apunte al emulador HoloLens. Su barra de opciones debería verse así:

Ejecute la solución y, una vez que se inicie el emulador y se cargue su aplicación, debería ver su cubo en la pantalla.

Haciendo el cubo interactivo

Ahora que hemos descubierto cómo introducir un cubo en nuestra aplicación, hagamos que el cubo realmente haga algo. Cuando miramos el cubo, girará, y cuando hagamos clic en el cubo, aumentará de tamaño.

Vuelva a Unity y cree un nuevo script en el panel de activos llamado InteractiveCube. Para crear una nueva secuencia de comandos, haga clic con el botón derecho en el panel de activos y seleccione Crear -> secuencia de comandos C #.

Para agregar el script al cubo, asegúrese de que el cubo esté seleccionado y arrastre y suelte el script en el panel del inspector. Debe tener un aspecto como este:

Haga doble clic en el script en la pestaña de activos y debería aparecer una instancia de Visual Studio.

Importe HoloToolkit.Unity.InputModule en la parte superior de nuestro script y haga que InteractiveCube extienda IFocusable y IInputClickHandler. Nuestro código debería verse así:

using HoloToolkit.Unity.InputModule;
public class InteractiveCube : MonoBehaviour, IFocusable, IInputClickHandler {...} 

Al extender las interfaces IFocuable e IInputClickHandler, nuestro componente de secuencia de comandos permite que el GameObject principal se suscriba a los eventos de enfoque y clic.

Hagamos que el cubo gire cuando nuestra mirada esté sobre él. La interfaz IFocusable requiere que implementemos dos métodos de vacío públicos: OnFocusEnter y OnFocusSalir. Cree un campo booleano privado y asígnele el nombre Rotativo. Cuando enfocamos el cubo, configúrelo en verdadero, y cuando nuestro enfoque salga, configúrelo en falso. Nuestro código debería verse así:

public bool Rotating;
public void OnFocusEnter(){ Rotating = true;}
public void OnFocusExit(){ Rotating = false;}

Haremos la rotación real en Update (). Update () es un método especial de Unity que se llama en cada fotograma. Para controlar la velocidad de la rotación, agregue un campo flotante público llamado RotationSpeed. Cualquier campo público de un componente se puede ajustar e inicializar en el editor de Unity.

public float RotationSpeed;
void Update() { if (Rotating) transform.Rotate(Vector3.Up * Time.deltaTime * RotationSpeed);}

En Unity, la transformación se usa para controlar los atributos físicos como el tamaño, la rotación y la posición de un GameObject. Estamos rotando el GameObject principal alrededor del eje y a un grado por segundo multiplicado por la velocidad.

Para que el cubo responda a los eventos de clic, agregue el método OnInputClicked requerido por IInputClickHandler. Cree una variable pública Vector3 llamada ScaleChange. En el método OnInputClicked, aumentaremos la escala del cubo mediante ScaleChange.

public Vector3 ScaleChange;
public void OnInputClicked(InputClickedEventData eventData) { transform.localScale += ScaleChange;}

Ahora que hemos terminado con la secuencia de comandos, vuelva a Unity. Asegúrese de que el objeto Cube esté seleccionado y establezca las variables Speed ​​y ScaleChange en 50 y (.025, .025, .025) respectivamente. ¡Siéntete libre de experimentar con diferentes valores! Nuestro guión debería verse así:

¡Increíble! Hemos terminado el script de InteractiveCube. Cree su aplicación desde el editor de Unity y ejecute la solución desde Visual Studio.

Resumen

En este tutorial, aprendió cómo configurar Unity para el desarrollo de HoloLens, crear un GameObject interactivo y ejecutar su aplicación en el emulador.

Si disfruta del desarrollo de HoloLens, le animo a que consulte los tutoriales de Microsoft Academy. Repasan los conceptos clave de HoloLens en detalle y lo guían a través de la creación de algunas aplicaciones geniales.

Si te gustó el artículo o tienes comentarios, ¡deja un comentario a continuación!