Ejercicio: Adición de interacción manual con objectmanipulator
El script ObjectManipulator admite la modalidad de manipulación directa del modelo de entrada de 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 cúbico, demasiado grande para nuestros objetivos. Escalaremos el tamaño hasta 20 centímetros cúbicos.
Seleccione el cubo y, a continuación, 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 Inspector, cambie los valores de Posición del cubo en la sección Transformar 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.
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 mantiene 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 las manos con seguimiento, debe tener tres 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 Manipulador de objetos (script)
- Componente 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 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 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.
Conel 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), 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 encima de la esquina superior derecha de la ventana Juego y seleccione Maximizar.
Mantenga presionada 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.
Haga clic en el botón izquierdo del mouse (esto hace que la mano “agarre” el cubo), a continuación 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, mantenga presionada 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.
Haga clic en el botón izquierdo del mouse (esto hace que la mano se cierre, tomando lo que llamamos el “gesto de reducir”), a continuación, arrastre el cubo alrededor de la escena.