Controlador de manipulación: MRTK2

Controlador de manipulación

El script ManipulationHandler permite que un objeto se haga móvil, escalable y giratorio mediante una o dos manos. La manipulación se puede restringir para que solo permita ciertos tipos de transformación. El script funciona con varios tipos de entradas, como HoloLens 2 entrada de mano articulada, rayos de mano, entrada de gestos HoloLens (1.ª generación) y entrada envolvente del controlador de movimiento de auriculares.

Uso del controlador de manipulación

Agregue el componente de ManipulationHandler script a un Objeto GameObject. Asegúrese de agregar también un colisionador al objeto, que coincida con sus límites agarrables.

Para que el objeto responda a una entrada manual casi articulada, agregue también el NearInteractionGrabbable script.

Uso del controlador de manipulación en el editor de Unity

Propiedades del inspector

Estructura del controlador de manipulación

Transformación de host Transformación que se arrastrará. El valor predeterminado es el objeto del componente.

Tipo de manipulación Especifica si el objeto se puede manipular con una mano, dos manos o ambas.

  • Solo con una mano
  • Solo con dos manos
  • Una y dos manos

Tipo de manipulación con dos manos

  • Escala: solo se permite el escalado.
  • Girar: solo se permite la rotación.
  • Mover escala: se permite mover y escalar.
  • Mover girar: se permite mover y girar.
  • Girar escala: se permite girar y escalar.
  • Mover escala de rotación: se permite mover, girar y escalar.

Controlador de manipulación

Permitir manipulación remota Especifica si la manipulación se puede realizar mediante una interacción lejana con punteros.

Modo de rotación de una mano cerca Especifica cómo se comportará el objeto cuando se está agarrando con una mano o un controlador cerca.

Modo de rotación de una mano lejos Especifica cómo se comportará el objeto cuando se está agarrando con una mano o un controlador a distancia.

Opciones del modo de rotación de una mano Especifica cómo girará el objeto cuando se le agarre con una mano.

  • Mantener la rotación original: no gira el objeto mientras se mueve
  • Mantener la rotación al usuario: mantiene al usuario la rotación original del objeto para el eje X/Y.
  • Rotación de mantenimiento alineada por gravedad para el usuario: mantiene la rotación original del objeto al usuario, pero hace que el objeto sea vertical. Útil para objetos con un control de límites.
  • Usuario de face: garantiza que el objeto siempre se enfrenta al usuario. Útil para pizarras o paneles.
  • Cara lejos del usuario: garantiza que el objeto siempre se enfrenta al usuario. Útil para pizarras o paneles configurados hacia atrás.
  • Girar sobre el centro de objetos: solo funciona para manos o controladores articulados. Gire el objeto mediante la rotación de la mano o el controlador, pero sobre el punto central del objeto. Útil para inspeccionar a distancia.
  • Girar sobre el punto de agarre: solo funciona para manos o controladores articulados. Girar el objeto como si estuviera siendo mantenido por la mano o el controlador. Útil para la inspección.

Comportamiento de la versión Cuando se libera un objeto, especifique su comportamiento de movimiento físico. Requiere que un componente rigidbody esté en ese objeto.

  • Nothing
  • Todo
  • Mantener velocidad
  • Mantener Angular velocidad

Restricciones en la rotación Especifica en qué eje girará el objeto cuando se interactúe con .

  • Ninguna
  • Solo eje X
  • Solo eje Y
  • Solo eje Z

Uso del espacio local para la restricción Alternancia para cambiar entre aplicar restricciones con respecto al eje de espacio global o al eje espacial local.

Restricciones en el movimiento

  • Ninguna
  • Corregir la distancia desde la cabeza

Suavizado activo Especifica si el suavizado está activo.

Suavizar la cantidad de una mano Cantidad de suavizado que se aplica al movimiento, la escala y la rotación. Suavizado de 0 significa que no hay suavizado. Valor máximo significa que no hay ningún cambio en el valor.

Eventos

El controlador de manipulación proporciona los siguientes eventos:

  • OnManipulationStarted: se desencadena cuando se inicia la manipulación.
  • OnManipulationEnded: se desencadena cuando finaliza la manipulación.
  • OnHoverStarted: se activa cuando una mano o un controlador mantiene el puntero sobre el manipulable, cerca o lejos.
  • OnHoverEnded: se activa cuando una mano o un controlador desplace el manipulable, cerca o lejos.