Partager via


Gestionnaire de manipulation — MRTK2

Gestionnaire de manipulation

Le script ManipulationHandler permet de rendre un objet mobile, évolutif et pivotable à l’aide d’une ou deux mains. La manipulation peut être limitée de sorte qu’elle n’autorise que certains types de transformation. Le script fonctionne avec différents types d’entrées, notamment HoloLens 2 entrée manuelle articulée, les rayons de la main, l’entrée de mouvement HoloLens (1ère génération) et l’entrée du contrôleur de mouvement immersif du casque.

Comment utiliser le gestionnaire de manipulation

Ajoutez le ManipulationHandler composant script à un GameObject. Veillez également à ajouter un collisionneur à l’objet, correspondant à ses limites pouvant être saisies.

Pour que l’objet réponde à une entrée manuelle presque articulée, ajoutez également le NearInteractionGrabbable script.

Utilisation du gestionnaire de manipulation dans l’éditeur unity

Propriétés de l’inspecteur

Structure du gestionnaire de manipulation

Transformation d’hôte Transformation qui sera glissée. La valeur par défaut est l’objet du composant.

Type de manipulation Spécifie si l’objet peut être manipulé à l’aide d’une main, de deux mains ou des deux.

  • Une seule main
  • À deux mains uniquement
  • Une et Deux mains

Type de manipulation à deux mains

  • Mise à l’échelle : seule la mise à l’échelle est autorisée.
  • Rotation : seule la rotation est autorisée.
  • Déplacer l’échelle : le déplacement et la mise à l’échelle sont autorisés.
  • Déplacer Pivoter : Le déplacement et la rotation sont autorisés.
  • Faire pivoter l’échelle : la rotation et la mise à l’échelle sont autorisées.
  • Déplacer l’échelle de rotation : le déplacement, la rotation et la mise à l’échelle sont autorisés.

Gestionnaire de manipulation

Autoriser la manipulation à distance Spécifie si la manipulation peut être effectuée à l’aide d’une interaction lointaine avec des pointeurs.

Mode rotation d’une main à proximité Spécifie le comportement de l’objet lorsqu’il est saisi avec une main ou un contrôleur à proximité.

Mode de rotation d’une main loin Spécifie le comportement de l’objet lorsqu’il est saisi d’une main/d’un contrôleur à distance.

Options du mode de rotation d’une main Spécifie la rotation de l’objet lorsqu’il est saisi d’une main.

  • Conserver la rotation d’origine : ne fait pas pivoter l’objet au fur et à mesure qu’il est déplacé
  • Maintenir la rotation vers l’utilisateur : maintient la rotation d’origine de l’objet pour l’axe X/Y vers l’utilisateur
  • La gravité alignée maintient la rotation vers l’utilisateur : maintient la rotation d’origine de l’objet à l’utilisateur, mais rend l’objet vertical. Utile pour les objets avec un contrôle de limites.
  • Utilisateur visage : garantit que l’objet fait toujours face à l’utilisateur. Utile pour les ardoises/panneaux.
  • Face loin de l’utilisateur : garantit que l’objet est toujours en face de l’utilisateur. Utile pour les ardoises/panneaux configurés vers l’arrière.
  • Faire pivoter sur le centre d’objets : fonctionne uniquement pour les mains/contrôleurs articulés. Faire pivoter l’objet à l’aide de la rotation de la main/du contrôleur, mais autour du point central de l’objet. Utile pour l’inspection à distance.
  • Faire pivoter sur le point de prise : fonctionne uniquement pour les mains/contrôleurs articulés. Faites pivoter l’objet comme s’il était tenu par la main/le contrôleur. Utile pour l’inspection.

Comportement de mise en production Lorsqu’un objet est libéré, spécifiez son comportement de mouvement physique. Nécessite qu’un composant rigidbody se trouve sur cet objet.

  • Nothing
  • Tout
  • Conserver la vitesse
  • Conserver Angular vélocité

Contraintes sur la rotation Spécifie l’axe avec lequel l’objet doit pivoter en cas d’interaction.

  • Aucune
  • Axe X uniquement
  • Axe Y uniquement
  • Axe Z uniquement

Utiliser l’espace local pour la contrainte Bascule pour basculer entre l’application de contraintes par rapport à l’axe de l’espace du monde ou l’axe de l’espace local.

Contraintes sur le mouvement

  • Aucune
  • Corriger la distance de la tête

Lissage actif Spécifie si le lissage est actif.

Lissage d’une main Quantité de lissage à appliquer au mouvement, à l’échelle, à la rotation. Le lissage de 0 signifie aucun lissage. Valeur maximale signifie qu’aucune modification de la valeur n’est apportée.

Événements

Le gestionnaire de manipulation fournit les événements suivants :

  • OnManipulationStarted : déclenché au début de la manipulation.
  • OnManipulationEnded : se déclenche lorsque la manipulation se termine.
  • OnHoverStarted : se déclenche lorsqu’une main ou un contrôleur pointe le manipulateur, de près ou de loin.
  • OnHoverEnded : se déclenche lorsqu’une main ou un contrôleur désactive le manipulateur, proche ou lointain.