Objektmanipulator – MRTK2

Objektmanipulator

Der ObjectManipulator ist die neue Komponente für das Manipulationsverhalten, die zuvor in ManipulationHandler zu finden war. Der Objektmanipulator nimmt eine Reihe von Verbesserungen und Vereinfachungen vor. Diese Komponente ist ein Ersatz für den Bearbeitungshandler, der veraltet ist.

Das ObjectManipulator-Skript macht ein Objekt mit einer oder zwei Händen verschiebbar, skalierbar und rotierbar. Der Objektmanipulator kann so konfiguriert werden, dass er steuert, wie das Objekt auf verschiedene Eingaben reagiert. Das Skript sollte mit den meisten Interaktionsformen funktionieren, z. B. mit HoloLens 2 artikulierten Hand, HoloLens 2 Handstrahlen, HoloLens 1-Blick und -Gesten und immersiven Headset-Motion-Controller-Eingaben.

Verwenden des Objektmanipulators

Um den Objektmanipulator zu verwenden, fügen Sie zunächst die ObjectManipulator 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.

Physikalisches Verhalten kann für den Objektmanipulator aktiviert werden, indem dem Objekt eine Starrkörperkomponente hinzugefügt wird. Physikalisches Verhalten, das durch Hinzufügen dieser Komponente ermöglicht wird, wird in Physik und Kollisionen ausführlicher behandelt.

Darüber hinaus kann die Bearbeitung eingeschränkt werden, indem dem Objekt Bearbeitungseinschränkungskomponenten hinzugefügt werden. Dies sind spezielle Komponenten, die mit Manipulation arbeiten und das Manipulationsverhalten in irgendeiner Weise verändern.

Verwenden des Bearbeitungshandlers im Unity-Editor

Eigenschaften und Felder der Inspektor

Objektmanipulatorstruktur

Allgemeine Eigenschaften

Hosttransformation

Die Objekttransformation, die bearbeitet wird. Wird standardmäßig auf das -Objekt der Komponente festgelegt.

Manipulationstyp

Gibt an, ob das Objekt mit einer oder zwei Händen bearbeitet werden kann. Da es sich bei dieser Eigenschaft um ein Flag handelt, können beide Optionen ausgewählt werden.

  • Einhändig: Ermöglicht eine einhändige Manipulation, falls ausgewählt.
  • Zweihändig: Ermöglicht bei Auswahl zweihändiger Manipulation.

Bearbeitung von weit entfernten Daten zulassen

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

Einhändige Bearbeitungseigenschaften

Drehungsmodus mit einer Hand in der Nähe

Gibt an, wie sich das Objekt verhält, wenn es mit einer Hand in der Nähe gegriffen wird. Diese Optionen funktionieren nur für artikulierte Hände.

  • Drehen um objektzentriert: Das Objekt dreht sich mithilfe der Drehung der Hand, aber um den Objektmittelpunkt. Das Objekt scheint sich weniger zu bewegen, wenn es sich dreht, aber es kann ein Gefühl der Trennung zwischen der Hand und dem Objekt geben. Nützlicher für die Ferninteraktion.
  • Drehen um den Greifpunkt: Drehen Sie das Objekt mit der Hand um den Greifpunkt zwischen Daumen und Zeigefinger. Es sollte sich anfühlen, als ob das Objekt von der Hand gehalten wird.

Ein-Hand-Drehungsmodus weit

Gibt an, wie sich das Objekt verhält, wenn es mit einer Hand in der Entfernung gegriffen wird. Diese Optionen funktionieren nur für artikulierte Hände.

  • Drehen um den Objektmittelpunkt: Drehen Sie das Objekt mithilfe der Drehung der Hand, aber über den Objektmittelpunkt. Nützlich für die Untersuchung in einer Entfernung, ohne dass sich der Objektmittelpunkt bewegt, während sich das Objekt dreht.
  • Drehen über den Greifpunkt: Drehen Sie das Objekt mithilfe der Drehung der Hand, aber über den Zeigerstrahltreffpunkt. Nützlich zur Untersuchung.

Zweihändige Bearbeitungseigenschaften

Zweihändige Manipulationsart

Gibt an, wie die Zweihandbearbeitung ein Objekt transformieren kann. Da es sich bei dieser Eigenschaft um ein Flag handelt, kann eine beliebige Anzahl von Optionen ausgewählt werden.

  • Verschieben: Verschieben ist zulässig, wenn diese Option ausgewählt ist.
  • Skalierung: Wenn diese Option ausgewählt ist, ist die Skalierung zulässig.
  • Rotieren: Wenn diese Option ausgewählt ist, ist die Drehung zulässig.

Manipulationshandler

Einschränkungen

Aktivieren von Einschränkungen

Diese Einstellung aktiviert den verknüpften Einschränkungs-Manager. Transformationsänderungen werden von Einschränkungen verarbeitet, die beim ausgewählten Einschränkungs-Manager registriert sind.

Einschränkungs-Manager

In der Dropdownliste können Sie einen der angefügten Einschränkungs-Manager auswählen. Der Objektmanipulator stellt sicher, dass jederzeit ein Einschränkungs-Manager angefügt ist. Beachten Sie, dass mehrere Komponenten desselben Typs unter demselben Namen in Unity angezeigt werden. Um die Unterscheidung zwischen mehreren Einschränkungs-Managern für dasselbe Objekt zu erleichtern, zeigen die verfügbaren Optionen einen Hinweis auf die Konfiguration des ausgewählten Einschränkungs-Managers (manuelle oder automatische Einschränkungsauswahl) an.

Zu Komponente wechseln

Die Auswahl des Einschränkungs-Managers enthält die Schaltfläche Zu Komponente wechseln . Diese Schaltfläche bewirkt, dass der Inspektor zu der ausgewählten Komponente scrollt, damit sie konfiguriert werden kann.

Physische Effekte

Einstellungen in diesem Abschnitt werden nur angezeigt, wenn das Objekt über eine RigidBody-Komponente verfügt.

Releaseverhalten

Geben Sie an, welche physischen Eigenschaften ein bearbeitetes Objekt bei der Freigabe beibehalten soll. Da es sich bei dieser Eigenschaft um ein Flag handelt, können beide Optionen ausgewählt werden.

  • Geschwindigkeit beibehalten: Wenn das Objekt freigegeben wird, behält es seine lineare Geschwindigkeit bei, wenn diese Option ausgewählt ist.
  • Angular Geschwindigkeit beibehalten: Wenn das Objekt freigegeben wird, behält es seine Winkelgeschwindigkeit bei, wenn diese Option ausgewählt ist.

Verwenden von Kräften für nahezue Manipulation

Gibt an, ob physikalische Kräfte verwendet werden, um das Objekt zu verschieben, wenn in der Nähe Manipulationen ausgeführt werden. Wenn Sie dies auf false festlegen, fühlt sich das Objekt direkter mit der Hand des Benutzers verbunden an. Wenn Sie dies auf "true " festlegen, wird die Masse und Die Unbewegheit des Objekts berücksichtigt, aber es kann sich anfühlen, als ob das Objekt durch eine Feder verbunden wäre. Der Standardwert ist FALSE.

Glättung

Glätten weit

Gibt an, ob die bildratenunabhängige Glättung für Ferninteraktionen aktiviert ist. Die Weitglättung ist standardmäßig aktiviert.

Glätten in der Nähe

Gibt an, ob die bildratenunabhängige Glättung für nahe Interaktionen aktiviert ist. Die Fast-Glättung ist standardmäßig deaktiviert, da der Effekt als "getrennt" von der Hand wahrgenommen wird.

Glätten aktiv

Veraltet und wird in einer zukünftigen Version entfernt. Anwendungen sollten SmoothingFar, SmoothingNear oder eine Kombination aus beiden verwenden.

Verschiebezeit

Betrag der Glättung, die auf die Bewegung angewendet werden soll. Glättung von 0 bedeutet keine Glättung. Max. Wert bedeutet, dass sich der Wert nicht ändert.

Drehzeit

Betrag der Glättung, die auf die Drehung angewendet werden soll. Glättung von 0 bedeutet keine Glättung. Max. Wert bedeutet, dass sich der Wert nicht ändert.

Skalierungszeit

Betrag der Glättung, die auf die Skala angewendet werden soll. Glättung von 0 bedeutet keine Glättung. Max. Wert bedeutet, dass sich der Wert nicht ändert.

Bearbeitungsereignisse

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.

Die Ereignisfeuerreihenfolge für die Bearbeitung lautet:

OnHoverStarted ->OnManipulationStarted ->OnManipulationEnded ->OnHoverEnded

Wenn keine Manipulation erfolgt, erhalten Sie weiterhin Hover-Ereignisse mit der folgenden Feuerreihenfolge:

OnHoverStarted ->OnHoverEnded

Physik und Kollisionen

Physikalisches Verhalten kann durch Hinzufügen einer Starrkörperkomponente zum gleichen Objekt wie ein Objektmanipulator ermöglicht werden. Dies ermöglicht nicht nur die Konfiguration des oben genannten Releaseverhaltens , es ermöglicht auch Kollisionen. Ohne eine Starrkörperkomponente verhalten sich Kollisionen während der Manipulation nicht ordnungsgemäß:

  • Kollisionen zwischen einem manipulierten Objekt und einem statischen Collider (d. h. einem Objekt mit einem Collider, aber keinem starren Objekt) funktionieren nicht, das bearbeitete Objekt durchläuft den statischen Collider nicht.
  • Kollisionen zwischen einem manipulierten Objekt und einem starren Objekt (d. h. einem Objekt mit einem Collider und einem Starrkörper) führen dazu, dass der starreKörper eine Kollisionsantwort hat, aber die Antwort ist sprunghaft und unnatürlich. Es gibt auch keine Kollisionsantwort für das bearbeitete Objekt.

Wenn ein Starrkörper hinzugefügt wird, sollten Kollisionen ordnungsgemäß funktionieren.

Ohne Starrkörper

Kein starrer Körper

Mit Starrkörper

Starrer Körper

Elastische Datenbanken (experimentell)

Elastische Datenbanken können beim Bearbeiten von Objekten über den Objektmanipulator verwendet werden. Beachten Sie, dass sich das System für elastische Datenbanken noch im experimentellen Zustand befindet. Um elastische Datenbanken zu aktivieren, verknüpfen Sie entweder eine vorhandene Elastics-Manager-Komponente, oder erstellen und verknüpfen Sie über die Add Elastics Manager Schaltfläche einen neuen Manager für elastische Datenbanken.

Elastische Begrenzungssteuerelemente

Weitere Informationen