Manipulationshandler – MRTK2

Manipulationshandler

Mit dem ManipulationHandler-Skript kann ein Objekt mit einer oder zwei Händen verschiebbar, skalierbar und drehbar gemacht werden. Die Manipulation kann eingeschränkt werden, sodass sie nur bestimmte Arten von Transformation zulässt. Das Skript funktioniert mit verschiedenen Arten von Eingaben, einschließlich HoloLens 2 artikulierten Handeingaben, Handstrahlen, HoloLens-Gesteneingabe (1. Generation) und immersiven Headset-Motion-Controller-Eingaben.

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 seinen greifbaren Grenzen entspricht.

Fügen Sie auch das Skript hinzu, damit das NearInteractionGrabbable Objekt auf nahezu artikulierte Handeingaben reagiert.

Verwenden des Bearbeitungshandlers im Unity-Editor

Eigenschaften des Inspektors

Manipulationshandlerstruktur

Hosttransformation Transformation, die gezogen wird. Wird standardmäßig auf das -Objekt der Komponente festgelegt.

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

  • Nur einhändig
  • Nur bei zwei Händen
  • Ein- und Zweihändig

Zweihändiger Manipulationstyp

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

Manipulationshandler

Far Manipulation zulassen Gibt an, ob die Bearbeitung mithilfe der Ferninteraktion mit Zeigern erfolgen kann.

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

Einhand-Drehungsmodus weit Gibt an, wie sich das Objekt verhält, wenn es mit einer Hand/einem Controller in der Entfernung gegriffen wird.

Optionen für den Einhand-Drehungsmodus Gibt an, wie sich das Objekt dreht, wenn es mit einer Hand gegriffen wird.

  • Ursprüngliche Drehung beibehalten: Das Objekt wird nicht gedreht, während es verschoben wird.
  • Benutzerrotation beibehalten: Behält die ursprüngliche Drehung des Objekts für die X/Y-Achse für den Benutzer bei.
  • Schwerkraft ausgerichtete Beibehaltung der Drehung für den Benutzer: Behält die ursprüngliche Drehung des Objekts für den Benutzer bei, macht das Objekt jedoch vertikal. Nützlich für Objekte mit einem Begrenzungssteuerelement.
  • Gesichtserkennungsbenutzer: Stellt sicher, dass das Objekt immer dem Benutzer gegenübersteht. Nützlich für Slates/Panels.
  • Gesichtserkennung vom Benutzer weg: Stellt sicher, dass das Objekt immer vom Benutzer entfernt ist. Nützlich für Slates/Panels, die rückwärts konfiguriert sind.
  • Drehen über Objektcenter: Funktioniert nur für handgelenkte 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.
  • Rotieren über den Haltepunkt: Funktioniert nur für gelenkige Hände/Controller. Das Objekt wird gedreht, als ob es von der Hand/dem Controller gehalten würde. Nützlich zur Untersuchung.

Releaseverhalten Wenn ein Objekt freigegeben wird, geben Sie sein physisches Bewegungsverhalten an. Erfordert, dass sich eine Starrkörperkomponente in diesem Objekt befindet.

  • Nothing
  • Alles
  • Geschwindigkeit beibehalten
  • Angular Geschwindigkeit beibehalten

Einschränkungen für die Drehung Gibt an, auf welcher Achse das Objekt gedreht wird, wenn es interagiert wird.

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

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

Einschränkungen für die Verschiebung

  • None
  • Abstand vom Kopf fixieren

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

Glättung der Menge mit einer Hand Betrag der Glättung, die auf die Bewegung, Skalierung, Drehung angewendet werden soll. Glättung von 0 bedeutet keine Glättung. Max. Wert bedeutet, dass sich der Wert nicht ändert.

Events

Der Manipulationshandler stellt die folgenden Ereignisse bereit:

  • OnManipulationStarted: Wird ausgelöst, wenn die Manipulation gestartet wird.
  • OnManipulationEnded: Wird ausgelöst, wenn die Bearbeitung endet.
  • OnHoverStarted: Wird ausgelöst, wenn eine Hand/ein Controller die manipulatierbare, nahe oder weit bewegt.
  • OnHoverEnded: Wird ausgelöst, wenn ein Hand-/Controller die manipulierbare, nahe oder weit entfernte Maus auflöst.