Manipulador de objetos

Manipulador de objetos

ObjectManipulator es el nuevo componente para el comportamiento de manipulación, que se encontró anteriormente en ManipulationHandler. El manipulador de objetos realiza una serie de mejoras y simplificaciones. Este componente es un reemplazo del controlador de manipulación, que estará en desuso.

El script ObjectManipulator hace que un objeto sea móvil, escalable y rotable con una o dos manos. El manipulador de objetos se puede configurar para controlar cómo responderá el objeto a varias entradas. El script debe funcionar con la mayoría de las formas de interacción HoloLens 2, como una mano articulada, HoloLens 2 rayos de la mano, una mirada y gestos de HoloLens y una entrada de controlador de movimiento de casco envolvente.

Uso del manipulador de objetos

Para usar el manipulador de objetos, agregue primero el ObjectManipulator componente de script a un Objeto GameObject. Asegúrese de agregar también un colisionador al objeto, que coincida con sus límites que se pueden agarrar.

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

El comportamiento físico se puede habilitar para el manipulador de objetos agregando un componente rigidbody al objeto. El comportamiento físico habilitado mediante la adición de este componente se describe con más detalle en Física y colisiones.

Además de esto, la manipulación se puede restringir agregando componentes de restricción de manipulación al objeto . Se trata de componentes especiales que funcionan con la manipulación y cambian el comportamiento de la manipulación de alguna manera.

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

Propiedades y campos del inspector

Object Manipulator Structure

Propiedades generales

Transformación de host

Transformación de objeto que se va a manipular. El valor predeterminado es el objeto del componente.

Tipo de manipulación

Especifica si el objeto se puede manipular con una o dos manos. Dado que esta propiedad es una marca, se pueden seleccionar ambas opciones.

  • Con una mano: habilita la manipulación con una mano si se selecciona.
  • Dos manos: habilita la manipulación con dos manos si se selecciona.

Permitir manipulación lejana

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

Propiedades de manipulación con una mano

Modo de rotación de una mano cerca

Especifica cómo se comportará el objeto cuando se esté capturando con una mano cerca. Estas opciones solo funcionan para las manos articuladas.

  • Girar sobre el centro de objetos: el objeto gira mediante la rotación de la mano, pero sobre el punto central del objeto. Parecerá que el objeto se mueve menos a medida que gira, pero puede haber una sensación de desconexión entre la mano y el objeto. Más útil para la interacción lejana.
  • Girar sobre el punto de agarre: gira el objeto con la mano sobre el punto de agarre entre el dedo índice y el dedo índice. Debería ser como si el objeto se hubiera mantenido con la mano.

Modo de rotación de una mano lejos

Especifica cómo se comportará el objeto cuando se esté tomando con una mano a distancia. Estas opciones solo funcionan para las manos articuladas.

  • Girar sobre el centro de objetos: gira el objeto mediante la rotación de la mano, pero sobre el punto central del objeto. Resulta útil para inspeccionar a una distancia sin que el centro de objetos se mueva a medida que el objeto gira.
  • Girar sobre el punto de agarre: gira el objeto mediante la rotación de la mano, pero sobre el punto de impacto del rayo del puntero. Útil para la inspección.

Dos propiedades de manipulación con manos

Tipo de manipulación con dos manos

Especifica cómo la manipulación de dos manos puede transformar un objeto. Dado que esta propiedad es una marca, se puede seleccionar cualquier número de opciones.

  • Mover: se permite el movimiento si se selecciona.
  • Escala: se permite el escalado si se selecciona.
  • Girar: se permite la rotación si se selecciona.

Controlador de manipulación

Restricciones

Habilitar restricciones

Esta configuración habilitará el administrador de restricciones vinculadas. Los cambios de transformación se procesarán mediante restricciones registradas en el administrador de restricciones seleccionado.

Administrador de restricciones

La lista desplegable permite seleccionar cualquiera de los administradores de restricciones asociados. El manipulador de objetos garantiza que haya un administrador de restricciones asociado en todo momento. Tenga en cuenta que varios componentes del mismo tipo se mostrarán con el mismo nombre en Unity. Para facilitar la distinción entre varios administradores de restricciones en el mismo objeto, las opciones disponibles mostrarán una sugerencia sobre la configuración del administrador de restricciones seleccionado (selección manual o automática de restricciones).

Ir al componente

La selección del administrador de restricciones incluye un botón Ir al componente. Este botón hará que el inspector se desplace al componente seleccionado para que se pueda configurar.

Física

Configuración en esta sección solo aparecen cuando el objeto tiene un componente RigidBody.

Comportamiento de la versión

Especifique las propiedades físicas que un objeto manipulado debe conservar al liberarse. Dado que esta propiedad es una marca, se pueden seleccionar ambas opciones.

  • Mantener velocidad: cuando se libera el objeto, si se selecciona esta opción, mantendrá su velocidad lineal.
  • Mantener Angular velocidad: cuando se libera el objeto, si se selecciona esta opción, mantendrá su velocidad angular.

Uso de fuerzas para la manipulación próxima

Si se usan fuerzas físicas para mover el objeto al realizar manipulaciones cercanas. Si se establece en false, el objeto se verá más conectado directamente a la mano de los usuarios. Si se establece en true, se respetará la masa y la inercia del objeto, pero puede parecer que el objeto está conectado a través de un spring. El valor predeterminado es false.

Suavizado

Suavizado lejos

Si el suavizado independiente de velocidad de fotogramas está habilitado para interacciones lejanas. El suavizado lejano está habilitado de forma predeterminada.

Suavizado cerca de

Si el suavizado independiente de velocidad de fotogramas está habilitado para interacciones cercanas. El suavizado casi está deshabilitado de forma predeterminada porque el efecto se puede percibir como "desconectado" de la mano.

Suavizado activo

Obsoleto y se quitará en una versión futura. Las aplicaciones deben usar SmoothingFar, SmoothingNear o una combinación de los dos.

Mover el tiempo de lerp

Cantidad de suavizado que se aplicará al movimiento. Suavizado de 0 significa que no hay suavizado. El valor máximo significa que no hay ningún cambio en el valor.

Rotación del tiempo de lerp

Cantidad de suavizado que se aplicará a la rotación. Suavizado de 0 significa que no hay suavizado. El valor máximo significa que no hay ningún cambio en el valor.

Escalado del tiempo de lerp

Cantidad de suavizado que se aplicará a la escala. Suavizado de 0 significa que no hay suavizado. El valor máximo significa que no hay ningún cambio en el valor.

Eventos de manipulación

El controlador de manipulación proporciona los siguientes eventos:

  • OnManipulationStarted: se desencadena cuando se inicia la manipulación.
  • OnManipulationEnded: se ejecuta 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 mantiene el puntero sobre el manipulable, cerca o lejos.

El orden de manipulación de la manipulación del evento es:

OnHoverStarted -> OnManipulationStarted -> OnManipulationEnded -> OnHoverEnded

Si no hay ninguna manipulación, seguirá teniendo eventos de mantener el puntero con el siguiente orden de incendio:

OnHoverStarted -> OnHoverEnded

Física y colisiones

El comportamiento físico se puede habilitar agregando un componente rigidbody al mismo objeto que un manipulador de objetos. Esto no solo habilita la configuración del comportamiento de la versión anterior, sino que también permite colisiones. Sin un componente rigidbody, las colisiones no se comportan correctamente durante la manipulación:

  • Las colisiones entre un objeto manipulado y un colisionador estático (es decir, un objeto con un colisionador pero no un elemento rígido) no funcionan, el objeto manipulado pasa directamente a través del colisionador estático sin que se ve afectado.
  • Colisiones entre un objeto manipulado y un rígido (es decir, Un objeto con un colisionador y un elemento rigidbody) hace que el elemento rigidbody tenga una respuesta de colisión, pero la respuesta es rápida y no natural. Tampoco hay ninguna respuesta de colisión en el objeto manipulado.

Cuando se agrega un rigidbody, las colisiones deben funcionar correctamente.

Sin rigidbody

No Rigid Body

Con rigidbody

Rigid Body

Elásticos (experimentales)

Los elásticos se pueden usar al manipular objetos a través del manipulador de objetos. Tenga en cuenta que el sistema elástico sigue en estado experimental. Para habilitar los elásticos, vincule un componente existente del administrador de elásticos o cree y vincule un nuevo administrador de elásticos mediante el Add Elastics Manager botón .

Bounds Control Elastics

Consulte también