Ejercicio: Incorporación de scripts de interacción manual a un objeto
El script ObjectManipulator admite la modalidad de “manipulación directa” del modelo de entrada “manos y controladores de movimiento”. Cuando los scripts se adjuntan a un objeto, el usuario puede mover, escalar o girar el objeto con las manos. En este ejercicio, creará dos cubos, les adjuntará los scripts necesarios y luego los moverá.
Agregue y ajuste el primer cubo
En la barra de menús, seleccione GameObject>Objeto 3D>Cubo.
El tamaño predeterminado del cubo es de un metro cuadrado, que es demasiado grande para nuestros objetivos. Reduciremos el tamaño a 20 x 20 x 20 centímetros.
Seleccione el cubo y, a continuación, en Inspector, cambie los valores Tranform/Scale (Transformar/Escalado) del cubo a lo siguiente:
X = 0.2, Y = 0.2, Z = 0.2
El cubo se colocó en la escena en la posición predeterminada de (0,0,0). Esto significa que el cubo está en la misma posición que el casco del usuario y este no podrá ver el cubo hasta que se mueva hacia atrás. Cambiaremos los valores de posición del cubo para que esté en una mejor ubicación para visualizarlo.
En Inspector, cambie los valores Tranform/Position (Tranformar/Posición) del cubo a lo siguiente:
X = 0.2, Y = 1.6, Z = 0.5
Queremos poder ver tres lados del cubo, por lo que también cambiaremos su rotación.
Nota:
El alto del cubo se establece en 1.6 para que coincida con el alto del desplazamiento de cámara en Plataforma de XR de MRTK, lo que lo coloca aproximadamente en el nivel del ojo.
En Inspector, cambie los valores Tranform/Rotation (Tranformar/Rotación) del cubo a lo siguiente:
X = 9, Y = 14, Z = 0 f
Sugerencia
Para acercar el cubo, selecciónelo, asegúrese de que el cursor mantiene el puntero sobre la ventana Escena y, a continuación, presione la tecla F. Puede acercar cualquier objeto de esta manera.
Agregar los scripts al cubo
Para que un objeto sea “agarrable” con las manos con seguimiento, debe tener dos componentes conectados:
- Un componente Collider (no es necesario hacer nada aquí; el cubo de Unity ya tiene un componente Box Collider asociado de forma predeterminada)
- Componente Object Manipulator (Script) (Manipulador de objetos [script])
Con el cubo todavía seleccionado, en la ventana Inspector, seleccione el botón Añadir componente, y luego busque y seleccione el script Manipulador de objetos.
El script ObjectManipulator hace que un objeto se pueda mover, escalar y girar con una o las dos manos. Al agregar el script Manipulador de objetos, el script Administrador de restricciones también se agrega automáticamente porque el script Manipulador de objetos depende de él.
Actualizar el material del cubo
Para fines de rendimiento, se recomienda usar materiales de MRTK en lugar de los materiales predeterminados de Unity.
- Con el cubo aún seleccionado, busque la sección Materiales en el componente Representador de malla.
- Reemplace el material predeterminado por el material de MRTK_Standard_White, ubicado enMateriales de recursos estándar de MRTK>Materiales. Puede arrastrar y colocar el material desde el panel Project en la sección Materiales.
Agregue un segundo cubo
En Jerarquía, haga clic con el botón derecho en el cubo y seleccione Duplicar. El cubo duplicado aparece con el nombre Cubo (1).
Haga clic con el botón derecho en el cubo original, seleccione Cambiar nombre y asigne al cubo el nombre Cubo cercano.
Haga clic con el botón derecho en el cubo duplicado, seleccione Cambiar nombre y asigne al cubo el nombre Cubo lejano.
Por el momento, parece que solo hay un cubo en la vista Escena. Esto se debe a que el cubo cercano y el cubo lejano están en el mismo lugar exacto. Vamos a cambiar la posición y rotación del cubo lejano.
Con el cubo lejano aún seleccionado, cambie sus valores en el componente Transformar por lo siguiente:
Posición: X = 0.6, Y = 1.6, Z = 1.1
Rotación: X = 27, Y = 0, Z = 0
Ahora, la cámara debería ver el cubo cercano a la izquierda y el cubo lejano un poco más lejos a la derecha. Para confirmarlo, en Jerarquía, seleccione Cámara principal (enPlataforma de XR de MRTK>Desplazamiento de cámara) y luego mire a la ventana Cámara principal en la ventanaEscena.
Sugerencia
Si quiere que la vista de la ventana Escena se parezca más a lo que ve la cámara, desplácese por la ventana Escena. Es posible que deba establecer Borrar marcas de la cámara en Skybox si no está establecido de forma predeterminada.
Agarre y mueva los cubos en modo de reproducción
Seleccione el botón Reproducir. Cuando el proyecto comienza a reproducirse, la vista cambia a la ventana Juego.
Nota:
Antes de reproducir, confirme que hay un Perfil válido establecido en Configuración del proyecto>MRTK3.
Seleccione el botón de tres puntos situado en la esquina superior derecha de la ventana Juego y seleccione Maximizar.
Presione la barra espaciadora para que la mano derecha simulada aparezca en la vista.
Acerque la mano simulada al cubo cercano hasta que toque el lado o la parte inferior del cubo.
Presione el botón izquierdo del ratón (esto hace que la mano “agarre” el cubo) y arrastre el cubo alrededor de la escena.
Para agarrar y mover el cubo lejano, usaremos el puntero lejano asociado a la mano simulada.
Si es necesario, vuelva a presionar la barra espaciadora para que aparezca la mano derecha simulada. Observe el puntero lejano que se extiende desde el final del dedo índice de la mano.
Acerque la mano al cubo lejano hasta que pueda ver la punta del puntero en el cubo. Es posible que tenga que mover la mano en un movimiento circular varias veces para que la punta del puntero aparezca en el cubo.
Presione el botón izquierdo del ratón (esto hace que la mano se cierre, tomando lo que llamamos el gesto de reducir) y arrastre el cubo alrededor de la escena.
Simulación de la entrada en el editor de Unity
Puede probar el comportamiento de objetos holográficos con las características de simulación de entrada en el editor de Unity.
Cambiar la vista de la escena
- Presione las teclas W/A/S/D para mover la cámara hacia delante, la izquierda, atrás o la derecha.
- Para mover la cámara verticalmente, presione las teclas Q y E.
- Para girar la cámara, presione el botón derecho del mouse y arrastre.
Simular la entrada de mano
- Para habilitar la mano derecha simulada, mantenga presionada la barra espaciadora. Para quitar la mano, suelte la barra espaciadora.
- Para habilitar la mano izquierda simulada, mantenga presionada la tecla Mayús. izquierda. Para quitar la mano, suelte la tecla.
- Para mover cualquiera de las manos alrededor de la escena, mueva el mouse.
- Para mover la mano hacia delante o hacia atrás, gire la rueda del mouse.
- Presione el botón izquierdo del ratón para simular el gesto de reducir.
- Para girar la mano, mantenga presionada la barra espaciadora + la tecla CTRL (mano derecha) o la tecla Mayús. izquierda la tecla CTRL (mano izquierda) y, a continuación, mueva el ratón.
Manos persistentes
Para habilitar una mano y mantenerla en pantalla sin tener que mantener presionada una tecla, presione T (mano izquierda) o Y (mano derecha). Para quitar las manos, vuelva a presionar esas teclas.
Compile su aplicación en Unity
Para minimizar la ventana Reproducir, seleccione el botón de los tres puntos y desactive Maximizar.
En la barra de menús, seleccione Archivo>Configuración de compilación....
En la ventana Build Settings (Configuración de compilación), seleccione el botón Add Open Scenes (Agregar escenas abiertas) para agregar la escena actual a la lista Scenes In Build (Escenas de la compilación).
Seleccione el botón Compilar.
En la ventana Build Universal Windows Platform (Compilar Plataforma universal de Windows), vaya a la carpeta donde desea almacenar la compilación o cree una nueva carpeta y vaya a ella. A continuación, seleccione el botón Select Folder (Seleccionar carpeta) para iniciar el proceso de compilación.
Aparece una barra de progreso que le permite saber cómo se está avanzando en la compilación.
(Opcional) Para compilar e implementar la aplicación
Nota:
La creación y las pruebas de HoloLens 2 no son obligatorias. Como alternativa, puede realizar pruebas en el Emulador de HoloLens 2 si no tiene un dispositivo. Puede adquirir dispositivos en HoloLens.com.
Una vez completado el proceso de compilación, Explorador de archivos de Windows abre y muestra la carpeta de compilación. Desplácese a la carpeta y haga doble clic en el archivo de solución para abrirlo en Visual Studio.
Configure Visual Studio para HoloLens. Para ello, seleccione la configuración Principal o Versión y la arquitectura ARM64:
Sugerencia
Si va a realizar la implementación en HoloLens (1ª. generación), seleccione la arquitectura x86.
Nota:
Si no ve Dispositivo como opción de destino en Visual Studio, es posible que deba cambiar el proyecto de inicio de la solución del proyecto de IL2CPP al proyecto de UWP. En el Explorador de soluciones, haga clic con el botón derecho en [nombre del proyecto](Windows universal) y seleccione Establecer como proyecto de StartUp.
Importante
Antes de compilar en el dispositivo, el dispositivo debe estar en modo de desarrollador y emparejarse con el equipo de desarrollo; consulte Habilitar el modo de desarrollador.
Seleccione la lista desplegable de destino de implementación y, a continuación, realice una de las acciones siguientes:
- Si va a compilar e implementar a través de Wi-Fi, seleccione Equipo remoto.
- Si va a compilar e implementar a través de USB, seleccione Dispositivo.
Establezca la conexión remota: en la barra de menús, seleccione Proyecto > Propiedades.
En la ventana Páginas de propiedades del proyecto, en Propiedades de configuración > Depuración.
Seleccione el menú desplegable Depurador que se va a iniciar y seleccione Máquina remota, si no está ya seleccionada.
Importante
Siempre se recomienda especificar manualmente la dirección IP en lugar de depender de la característica "Detección automática". Para buscar la dirección IP, en HoloLens, vaya a Configuración > Actualizaciones y Seguridad > Para desarrolladores. La dirección IP aparece en la parte inferior de la ventana, en Ethernet.
En el campo Nombre del equipo, escriba la dirección IP del dispositivo.
Establezca el Modo de autenticación en Universal (protocolo sin cifrar).
Conecte el dispositivo HoloLens al equipo y, a continuación, realice una de las acciones siguientes en Visual Studio:
- Para implementar HoloLens e iniciar automáticamente la aplicación en el dispositivo sin el depurador de Visual Studio adjunto, seleccione Depurar>Iniciar sin depurar.
- Seleccione Compilar>Implementar solución para implementar HoloLens en el dispositivo sin que la aplicación se inicie automáticamente.
Emparejamiento del dispositivo
La primera vez que implemente una aplicación en HoloLens desde el equipo, deberá escribir un PIN. Para crear un PIN:
- En HoloLens, vaya a Configuración > Actualizaciones y Seguridad > Para desarrolladores.
- Seleccione Emparejar. Esto muestra el PIN en HoloLens.
- Escriba el PIN en el cuadro de diálogo de Visual Studio.
- Una vez completado el emparejamiento, seleccione Listo en HoloLens.
En ese momento, el equipo estará emparejado con HoloLens y podrá implementar aplicaciones automáticamente. Repita estos pasos para todos los equipos que se usen para implementar aplicaciones en HoloLens.
Ejecución de la aplicación en HoloLens
Una vez que la aplicación termine de compilarse, en el menú Inicio de HoloLens, busque el icono de aplicación de la aplicación y selecciónelo.
Una vez que se inicie la aplicación, alcance el cubo cercano y, a continuación, agárrelo y arrástrelo.
Use el puntero lejos para agarrar el cubo lejano y, a continuación, arrástrelo.
Sugerencia
HoloLens proporciona más flexibilidad que cuando estaba probando la aplicación en Unity. Puede moverse físicamente y utilizar el puntero lejano en el cubo cercano o alcanzar y agarrar con la mano el cubo lejano.
Sugerencias
También puede realizar la implementación en el emulador de HoloLens o crear un paquete de aplicación para la instalación de prueba.
Es posible que observe el generador de perfiles de diagnóstico en la aplicación. Puedes activarlo o desactivarlo mediante el comando de voz Alternar diagnóstico. Se recomienda que mantenga el generador de perfiles visible la mayor parte del tiempo durante el desarrollo para comprender cómo los cambios en la aplicación pueden afectar al rendimiento. Por ejemplo, puede supervisar la aplicación para asegurarse de que la velocidad de fotogramas sea de al menos de 60 FPS.