Controlador de manipulaciónManipulation handler

Controlador de manipulación

El script ManipulationHandler permite que un objeto se pueda mover, escalable y girar con una o dos manos.The ManipulationHandler script allows for an object to be made movable, scalable, and rotatable using one or two hands. La manipulación se puede restringir para que solo permita determinados tipos de transformación.Manipulation can be restricted so that it only allows certain kinds of transformation. El script funciona con varios tipos de entradas, como una entrada de mano articulada, rayo HoloLens 2 s de mano, entrada de gesto de HoloLens (1.ª generación) y entrada de controlador de movimiento de casco envolvente.The script works with various types of inputs including HoloLens 2 articulated hand input, hand-rays, HoloLens (1st gen) gesture input, and immersive headset motion controller input.

Uso del controlador de manipulaciónHow to use the manipulation handler

Agregue el ManipulationHandler componente de script a un Objeto GameObject.Add the ManipulationHandler script component to a GameObject. Asegúrese de agregar también un colisionador al objeto, que coincida con sus límites que se pueden agarrar.Make sure to also add a collider to the object, matching its grabbable bounds.

Para que el objeto responda a una entrada de mano casi articulada, agregue también NearInteractionGrabbable el script.To make the object respond to near articulated hand input, add the NearInteractionGrabbable script as well.

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

Propiedades del inspectorInspector properties

Manipulation Handler structure

Transformación de host Transformación que se arrastrará.Host Transform Transform that will be dragged. El valor predeterminado es el objeto del componente.Defaults to the object of the component.

Tipo de manipulación Especifica si el objeto se puede manipular con una mano, dos manos o ambas.Manipulation Type Specifies whether the object can be manipulated using one hand, two hands, or both.

  • Solo una manoOne handed only
  • Solo dos manosTwo handed only
  • Una y dos manosOne and Two handed

Tipo de manipulación con dos manosTwo Handed Manipulation Type

  • Escala: solo se permite el escalado.Scale: Only scaling is allowed.
  • Girar: solo se permite la rotación.Rotate: Only rotation is allowed.
  • Mover escala: se permite el movimiento y el escalado.Move Scale: Moving and scaling is allowed.
  • Mover rotación: se permite mover y girar.Move Rotate: Moving and rotating is allowed.
  • Girar escala: se permite la rotación y el escalado.Rotate Scale: Rotating and scaling is allowed.
  • Mover escala de rotación: se permite mover, girar y escalar.Move Rotate Scale: Moving, rotating and scaling is allowed.

Controlador de manipulación

Permitir manipulación lejana Especifica si se puede realizar la manipulación mediante la interacción lejana con punteros.Allow Far Manipulation Specifies whether manipulation can be done using far interaction with pointers.

Modo de rotación de una mano cerca Especifica cómo se comportará el objeto cuando se esté capturando con una mano o un controlador cerca.One Hand Rotation Mode Near Specifies how the object will behave when it is being grabbed with one hand / controller near.

Modo de rotación de una mano lejos Especifica cómo se comportará el objeto cuando se esté capturando con una mano o un controlador a distancia.One Hand Rotation Mode Far Specifies how the object will behave when it is being grabbed with one hand / controller at distance.

Opciones del modo de rotación de una mano Especifica cómo girará el objeto cuando se le agarró con una mano.One Hand Rotation Mode Options Specifies how the object will rotate when it is being grabbed with one hand.

  • Mantener la rotación original: no gira el objeto mientras se mueve.Maintain original rotation: Does not rotate object as it is being moved
  • Mantener la rotación al usuario: mantiene al usuario la rotación original del objeto para el eje X/Y.Maintain rotation to user: Maintains the object's original rotation for X/Y axis to the user
  • La gravedad alineada mantiene la rotación al usuario: mantiene la rotación original del objeto al usuario, pero hace que el objeto sea vertical.Gravity aligned maintain rotation to user: Maintains object's original rotation to user, but makes the object vertical. Útil para objetos con un control de límites.Useful for objects with a bounds control.
  • Usuario de face: garantiza que el objeto siempre se enfrenta al usuario.Face user: Ensures object always faces the user. Útil para paneles o pizarras.Useful for slates/panels.
  • Cara lejos del usuario: garantiza que el objeto siempre se aleje del usuario.Face away from user: Ensures object always faces away from user. Resulta útil para las pizarras o paneles configurados con versiones anteriores.Useful for slates/panels that are configured backwards.
  • Girar sobre el centro de objetos: solo funciona para manos o controladores articulados.Rotate about object center: Only works for articulated hands/controllers. Girar el objeto mediante la rotación de la mano o el controlador, pero sobre el punto central del objeto.Rotate object using rotation of the hand/controller, but about the object center point. Útil para inspeccionar a distancia.Useful for inspecting at a distance.
  • Girar sobre el punto de agarre: solo funciona para manos o controladores articulados.Rotate about grab point: Only works for articulated hands/controllers. Gira el objeto como si lo hubiera mantenido la mano o el controlador.Rotate object as if it was being held by hand/controller. Útil para la inspección.Useful for inspection.

Comportamiento de la versión Cuando se libera un objeto, especifique su comportamiento de movimiento físico.Release Behavior When an object is released, specify its physical movement behavior. Requiere que un componente de rigidbody esté en ese objeto.Requires a rigidbody component to be on that object.

  • NothingNothing
  • Everything (Todo)Everything
  • Mantener velocidadKeep Velocity
  • Mantener Angular velocidadKeep Angular Velocity

Restricciones de rotación Especifica en qué eje girará el objeto cuando se interactúe con él.Constraints on Rotation Specifies on which axis the object will rotate when interacted with.

  • NoneNone
  • Solo eje XX-Axis Only
  • Solo eje YY-Axis Only
  • Solo eje ZZ-Axis Only

Usar espacio local para la restricción Un botón de alternancia para cambiar entre aplicar restricciones con respecto al eje del espacio mundial o al eje de espacio local.Use Local Space For Constraint A toggle to switch between applying constraints in respect to world-space axis, or local space axis.

Restricciones en el movimientoConstraints on Movement

  • NoneNone
  • Corrección de la distancia desde la cabezaFix distance from head

Suavizado activo Especifica si el suavizado está activo.Smoothing Active Specifies whether smoothing is active.

Smoothing Amount One Hand Cantidad de suavizado que se aplicará al movimiento, la escala y la rotación.Smoothing Amount One Hand Amount of smoothing to apply to the movement, scale, rotation. Suavizado de 0 significa que no hay suavizado.Smoothing of 0 means no smoothing. El valor máximo significa que no hay ningún cambio en el valor.Max value means no change to value.

EventsEvents

El controlador de manipulación proporciona los siguientes eventos:Manipulation handler provides the following events:

  • OnManipulationStarted: se desencadena cuando se inicia la manipulación.OnManipulationStarted: Fired when manipulation starts.
  • OnManipulationEnded: se ejecuta cuando finaliza la manipulación.OnManipulationEnded: Fires when the manipulation ends.
  • OnHoverStarted: se activa cuando una mano o un controlador mantiene el puntero sobre el manipulable, cerca o lejos.OnHoverStarted: Fires when a hand / controller hovers the manipulatable, near or far.
  • OnHoverEnded: se activa cuando una mano o un controlador mantiene el puntero sobre el manipulable, cerca o lejos.OnHoverEnded: Fires when a hand / controller un-hovers the manipulatable, near or far.