Ejercicio: Adición de interacción manual con objectmanipulator

Completado

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

  1. En la barra de menús, seleccione GameObject>Objeto 3D>Cubo.

    Screenshot of menu commands for adding the cube.

    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.

  2. 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.

  3. 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

    Screenshot of the cube's transform component after updates.

    Queremos poder ver tres lados del cubo, por lo que también cambiaremos su rotación.

  4. 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)
  1. 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.

    Screenshot of adding the Object Manipulator script.

    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.

    Screenshot of the Constraint Manager script added to the cube.

Actualizar el material del cubo

Para fines de rendimiento, se recomienda usar materiales de MRTK en lugar de los materiales predeterminados de Unity.

  1. Con el cubo aún seleccionado, busque y expanda la sección Materiales en el componente Representador de malla.
  2. 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

  1. 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).

  2. Haga clic con el botón derecho en el cubo original, seleccione Cambiar nombre y asigne al cubo el nombre Cubo cercano.

  3. 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.

  4. 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.

    Screenshot of the Main Camera view in the Scene window.

    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

  1. Seleccione el botón Reproducir. Cuando el proyecto comienza a reproducirse, la vista cambia a la ventana Juego.

    Screenshot of the Game window after entering Play mode.

    Nota:

    Antes de reproducir, confirme que hay un perfil válido establecido en Configuración del proyecto>MRTK3.

  2. Seleccione el botón de tres puntos situado encima de la esquina superior derecha de la ventana Juego y seleccione Maximizar.

    Screenshot of Maximize command for the Game window.

  3. Mantenga presionada la barra espaciadora para que la mano derecha simulada aparezca en la vista.

  4. Acerque la mano simulada al cubo cercano hasta que toque el lado o la parte inferior del cubo.

    Screenshot of the simulated right hand touching the Near Cube.

  5. 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.

    Screenshot of Move the cube.

    Para agarrar y mover el cubo lejano, usaremos el puntero lejano asociado a la mano simulada.

  6. 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.

    Screenshot of simulated hand's far pointer.

  7. 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.

    Screenshot of the far pointer touching the cube.

  8. 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.