Controlador de manipulación: MRTK2

Manipulation handler

El script ManipulationHandler permite que un objeto se pueda mover, escalar y girar mediante una o dos manos. La manipulación se puede restringir para que solo permita determinados 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 de HoloLens (1.ª generación) y entrada del controlador de movimiento del casco envolvente.

Cómo usar el controlador de manipulación

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

Para que el objeto responda a la entrada de mano casi articulada, agregue también el NearInteractionGrabbable script.

Using the manipulation handler in the unity editor

Propiedades del inspector

Manipulation Handler structure

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 mediante una mano, dos manos o ambas.

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

Tipo de manipulación con dos manos

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

Manipulation Handler

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

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

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

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

  • Mantener la rotación original: no gira el objeto a medida que se mueve
  • Mantener la rotación al usuario: mantiene la rotación original del objeto para el eje X/Y al usuario.
  • Gravedad alineada con la rotación de mantenimiento al 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 paneles o tabletas táctiles.
  • Cara lejos del usuario: garantiza que el objeto siempre se encuentra lejos del usuario. Resulta útil para las tabletas táctiles o paneles configurados al revés.
  • Girar sobre el centro de objetos: solo funciona para manos/controladores articulados. Gire el objeto mediante la rotación de la mano o el controlador, pero sobre el punto central del objeto. Resulta útil para inspeccionar a distancia.
  • Girar sobre el punto de agarre: solo funciona para las manos/controladores articulados. Gira el objeto como si lo sujetase 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
  • Everything (Todo)
  • Mantener velocidad
  • Mantener la velocidad de Angular

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

  • None
  • Solo eje X
  • Solo eje Y
  • Solo eje Z

Uso del espacio local para la restricción Alternar para alternar entre aplicar restricciones con respecto al eje de espacio mundial o al eje de espacio local.

Restricciones en el movimiento

  • None
  • Corregir la distancia desde la cabeza

Suavizado activo Especifica si el suavizado está activo.

Cantidad de suavizado de una mano Cantidad de suavizado que se va a aplicar al movimiento, escala, rotación. Suavizado de 0 significa que no hay suavizado. El 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 activa cuando finaliza la manipulación.
  • OnHoverStarted: se desencadena cuando un controlador o mano mantiene el puntero sobre el manipulable, cerca o lejos.
  • OnHoverEnded: se desencadena cuando un controlador o mano desplace el puntero sobre el manipulable, cerca o lejos.