Manipulationshandler — MRTK2

Manipulation handler

Das ManipulationHandler-Skript ermöglicht es, ein Objekt mit einer oder zwei Händen verschiebbar, skalierbare und drehend zu machen. Die Manipulation kann eingeschränkt werden, sodass nur bestimmte Arten von Transformationen zulässig sind. Das Skript funktioniert mit verschiedenen Arten von Eingaben, einschließlich HoloLens 2 artikulierten Handeingaben, Handstrahlen, HoloLens (1. Generation) Gesteneingabe und immersive Headset-Bewegungscontrollereingabe.

Verwenden des Manipulationshandlers

Fügen Sie die ManipulationHandler Skriptkomponente zu einem GameObject hinzu. Stellen Sie sicher, dass Sie dem Objekt auch einen Collider hinzufügen, der den greifbaren Grenzen entspricht.

Fügen Sie auch das NearInteractionGrabbable Skript hinzu, um das Objekt auf eine nahezu artikulierte Handeingabe zu reagieren.

Using the manipulation handler in the unity editor

Inspector-Eigenschaften

Manipulation Handler structure

Hosttransformation Transformation, die gezogen wird. Standardwerte für das Objekt der Komponente.

Manipulationstyp Gibt an, ob das Objekt mit einer Hand, zwei Händen oder beides bearbeitet werden kann.

  • Nur eine Hand
  • Nur zweiHändige
  • Ein- und Zweihändig

Zweihändiger Manipulationstyp

  • Skalierung: Nur Skalierung ist zulässig.
  • Drehen: Nur Drehung ist zulässig.
  • Skalierung verschieben: Das Verschieben und Skalieren ist zulässig.
  • Verschieben: Verschieben und Drehen ist zulässig.
  • Skalierung drehen: Drehen und Skalieren ist zulässig.
  • Drehen der Skalierung: Verschieben, Drehen und Skalieren ist zulässig.

Manipulation Handler

Far Manipulation zulassen Gibt an, ob die Manipulation mithilfe einer weit verwendeten Interaktion mit Zeigern erfolgen kann.

Ein Handdrehungsmodus in der Nähe Gibt an, wie sich das Objekt verhält, wenn es mit einer Hand / einem Controller nahe gegriffen wird.

Ein Handdrehungsmodus weit Gibt an, wie sich das Objekt verhält, wenn es mit einer Hand / einem Controller in Entfernung gegreift wird.

Optionen für einen Handdrehungsmodus Gibt an, wie das Objekt gedreht wird, wenn es mit einer Hand gedreht wird.

  • Ursprüngliche Drehung beibehalten: Dreht das Objekt nicht, da es verschoben wird
  • Verwalten der Drehung für Benutzer: Verwaltet die ursprüngliche Drehung des Objekts für die X/Y-Achse für den Benutzer
  • Schwerkraft ausgerichtete Drehung für Benutzer: Verwaltet die ursprüngliche Drehung des Objekts für benutzer, macht jedoch das Objekt vertikal. Nützlich für Objekte mit einem Begrenzungssteuerelement.
  • Gesichtsbenutzer: Stellt sicher, dass das Objekt immer dem Benutzer gegenüber steht. Nützlich für Slates/Panels.
  • Gesicht vom Benutzer: Stellt sicher, dass das Objekt immer vom Benutzer entfernt ist. Nützlich für Slates/Panels, die rückwärts konfiguriert sind.
  • Drehen sie über das Objektcenter: Funktioniert nur für artikulierte Hände/Controller. Das Objekt wird durch Drehung von Hand/Controller gedreht, rotiert aber um seinen Mittelpunkt. Nützlich für die Untersuchung aus der Entfernung.
  • Drehen Sie den Haltepunkt: Funktioniert nur für artikulierte Hände/Controller. Das Objekt wird gedreht, als ob es von der Hand/dem Controller gehalten würde. Nützlich zur Untersuchung.

Veröffentlichungsverhalten Wenn ein Objekt losgelassen wird, geben Sie sein physisches Bewegungsverhalten an. Erfordert eine starre Komponente, die sich auf diesem Objekt befindet.

  • Nichts
  • Alles
  • Geschwindigkeit beibehalten
  • Angular Geschwindigkeit beibehalten

Einschränkungen für Drehung Gibt an, mit welcher Achse das Objekt beim Interagieren gedreht wird.

  • None
  • Nur X-Achse
  • Nur Y-Achse
  • Nur Z-Achse

Verwenden des lokalen Leerzeichens für Einschränkung Ein Umschalter, um zwischen der Anwendung von Einschränkungen in Bezug auf die Weltraumachse oder die lokale Raumachse zu wechseln.

Einschränkungen für Bewegung

  • None
  • Abstand vom Kopf fixieren

Glätten aktiv Gibt an, ob die Glättung aktiv ist.

Glättungsmenge 1 Hand Die Menge der Glättung, die auf die Bewegung, Skalierung, Drehung angewendet werden soll. Glätten von 0 bedeutet keine Glättung. Max. Wert bedeutet keine Änderung an Wert.

Ereignisse

Der Manipulationshandler stellt die folgenden Ereignisse bereit:

  • OnManipulationStarted: Beim Starten der Manipulation ausgelöst.
  • OnManipulationEnded: Wird ausgelöst, wenn die Manipulation endet.
  • OnHoverStarted: Wird ausgelöst, wenn ein Hand- / Controller die manipulationsfähige, nahe oder weit bewegt.
  • OnHoverEnded: Wird ausgelöst, wenn ein Hand- / Controller die manipulationsfähige, nahe oder weit bewegt.