Ejercicio: Adición de interacción de manos con objectmanipulator
El script ObjectManipulator admite la modalidad de manipulación directa del modelo de entrada de manos y controladores de movimiento. Cuando el script está asociado a un objeto, el usuario puede mover, escalar o girar el objeto con sus manos. En este ejercicio, crearás dos cubos, les adjuntarás los scripts necesarios y después los moverás.
Agregue y ajuste el primer cubo
En la barra de menús, seleccione GameObject>Objeto 3D>Cubo.
El tamaño predeterminado del cubo es un metro cúbico, lo cual es demasiado grande para nuestros propósitos. Escalaremos el tamaño hasta 20 centímetros cúbicos.
Seleccione el cubo y, después, en inspector, cambie los valores de escala del cubo en la sección Transformar 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 el Inspector, cambie los valores de Posición del cubo en la sección Transformar por 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.
En inspector, cambie los valores de Rotación del cubo en los valores de la sección Transformar a lo siguiente:
X = 9, Y = 14, Z = 0
Sugerencia
Para acercar el cubo, selecciónelo, asegúrese de que el cursor mantenga el puntero sobre la ventana Escena y presione la tecla F . Puede acercar cualquier objeto de esta manera.
Agregar los scripts al cubo
Para que un objeto sea "agarrable" con manos rastreadas, debe tener tres componentes incorporados:
- Un componente Collider (no es necesario hacer nada aquí; el cubo de Unity ya tiene un componente Box Collider asociado de forma predeterminada)
- Componente Manipulador de objetos (script)
- Componente del Administrador de restricciones (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 manipulador de objetos hace que un objeto sea extraíble, escalable y girable mediante una o 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 y expanda 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. Para ello, arrastre el material directamente al campo Elemento de 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, a continuación, 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 far Cube aún seleccionado, cambie sus valores en su componente Transform a 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 a la derecha. Para confirmarlo, en la Jerarquía, seleccione Cámara Principal (bajo Plataforma XR de MRTK>Desplazamiento de Cámara), luego observe la ventana de Cámara Principal en la ventana de Escena.
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 manera predeterminada.
Agarra y mueve los cubos en modo de juego
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> proyectoMRTK3.
Seleccione el botón de tres puntos situado encima de la esquina superior derecha de la ventana Juego y, a continuación, seleccione Maximizar.
Mantenga presionada la barra espaciadora para que la mano derecha simulada aparezca en la vista.
Mueva la mano simulada más cerca del cubo cercano hasta que toque el cubo en el lado o en la parte inferior.
Haga clic en el botón izquierdo del mouse (esto hace que la mano "tome" 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 necesita, mantenga presionada la barra espaciadora de nuevo 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 Far Cube hasta que vea 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.
Haga clic en el botón izquierdo del mouse (esto hace que la mano se cierre, tomando lo que llamamos "gesto de pinchar") y arrastre el cubo alrededor de la escena.