Objektmanipulator – MRTK2
Der ObjectManipulator ist die neue Komponente für Manipulationsverhalten, die zuvor in ManipulationHandler gefunden wurde. Der Objektmanipulator macht eine Reihe von Verbesserungen und Vereinfachungen. Diese Komponente ist ein Ersatz für den Manipulationshandler, der veraltet ist.
Das ObjectManipulator-Skript macht ein Objekt verschiebbar, skalierbare und drehbar mit einem oder zwei Händen. Der Objektmanipulator kann konfiguriert werden, um zu steuern, wie das Objekt auf verschiedene Eingaben reagiert. Das Skript sollte mit den meisten Interaktionsformen arbeiten, z. B. HoloLens 2 artikulierte Hand, HoloLens 2 Handstrahlen, HoloLens 1 Blick und Gesten und immersive Headset-Bewegungscontrollereingaben.
Verwenden des Objektmanipulators
Um den Objektmanipulator zu verwenden, fügen Sie zuerst die ObjectManipulator
Skriptkomponente zu einem GameObject hinzu. Stellen Sie sicher, dass Sie dem Objekt auch einen Collider hinzufügen, deren ziehbare Grenzen übereinstimmen.
Fügen Sie das NearInteractionGrabbable
Skript auch hinzu, um das Objekt auf die nah artikulierte Handeingabe zu reagieren.
Das Physikalische Verhalten kann für den Objektmanipulator aktiviert werden, indem eine starre Körperkomponente zum Objekt hinzugefügt wird. Physikverhalten, das durch hinzufügen dieser Komponente aktiviert ist, wird in Physik und Kollisionen genauer erläutert.
Außerdem kann die Manipulation eingeschränkt werden, indem Manipulationsbeschränkungskomponenten zum Objekt hinzugefügt werden. Dies sind spezielle Komponenten, die mit Manipulation arbeiten und das Manipulationsverhalten auf einige Weise ändern.
Inspektoreigenschaften und Felder

Allgemeine Eigenschaften
Hosttransformation
Die Objekttransformation, die bearbeitet wird. Standardeinstellung für das Objekt der Komponente.
Manipulationstyp
Gibt an, ob das Objekt mithilfe einer Hand oder zwei Händen bearbeitet werden kann. Da es sich bei dieser Eigenschaft um ein Flag handelt, können beide Optionen ausgewählt werden.
- Eine Hand: Ermöglicht eine handgesteuerte Manipulation, wenn ausgewählt.
- Zweihand: Ermöglicht zweihändige Manipulation, wenn ausgewählt.
Weit manipulation zulassen
Gibt an, ob die Manipulation mit zeigern weit genutzt werden kann.
Eigenschaften einer Handbearbeitung
Ein Handdrehungsmodus in der Nähe
Gibt an, wie sich das Objekt verhält, wenn es mit einer Hand nahe geraubt wird. Diese Optionen funktionieren nur für artikulierte Hände.
- Drehen Sie sich über das Objektcenter: Das Objekt dreht sich mithilfe der Drehung der Hand, aber über den Objektzentrpunkt. Das Objekt wird erscheinen, weniger zu bewegen, während es gedreht wird, aber es kann ein Gefühl der Trennung zwischen der Hand und dem Objekt geben. Nützlicher für eine weite Interaktion.
- Drehen Sie den Grabpunkt: Drehen Sie das Objekt mit der Hand über den Ziehpunkt zwischen dem Daumen und dem Indexfinger. Es sollte so aussehen, als ob das Objekt von der Hand gehalten wird.
Ein Handdrehungsmodus weit
Gibt an, wie sich das Objekt verhält, wenn er mit einer Hand in Abstand geraubt wird. Diese Optionen funktionieren nur für artikulierte Hände.
- Drehen Sie sich über das Objektcenter: Drehen Des Objekts mithilfe der Drehung der Hand, aber über den Objektzentrpunkt. Nützlich für die Überprüfung in einem Abstand, ohne dass sich das Objektzentrum bewegt, wenn das Objekt gedreht wird.
- Drehen Sie den Greifpunkt: Drehen Sie das Objekt mithilfe der Drehung der Hand, aber über den Zeigerstrahl-Trefferpunkt. Nützlich zur Untersuchung.
Zweihand-Manipulationseigenschaften
Zweihand-Manipulationstyp
Gibt an, wie zwei Handbearbeitungen ein Objekt transformieren können. Da diese Eigenschaft ein Flag ist, kann eine beliebige Anzahl von Optionen ausgewählt werden.
- Verschieben: Das Verschieben ist zulässig, wenn ausgewählt.
- Skalierung: Skalierung ist zulässig, wenn ausgewählt.
- Drehen: Drehung ist zulässig, wenn ausgewählt.
Einschränkungen
Aktivieren von Einschränkungen
Diese Einstellung aktiviert den verknüpften Einschränkungs-Manager. Transformationsänderungen werden durch Einschränkungen verarbeitet, die für den ausgewählten Einschränkungs-Manager registriert sind.
Einschränkungs-Manager
Mit der Dropdownliste können Sie eine der angefügten Einschränkungsmanager auswählen. Der Objektmanipulator stellt sicher, dass ein Einschränkungs-Manager jederzeit angefügt ist. Beachten Sie, dass mehrere Komponenten desselben Typs unter demselben Namen in Unity angezeigt werden. Um es einfacher zu machen, zwischen mehreren Einschränkungsmanagern auf demselben Objekt zu unterscheiden, werden die verfügbaren Optionen einen Hinweis auf die Konfiguration des ausgewählten Einschränkungs-Managers (manuelle oder automatische Einschränkungsauswahl) angezeigt.
Zu Komponente wechseln
Die Einschränkungs-Manager-Auswahl enthält eine Schaltfläche " Zu Komponente wechseln ". Diese Schaltfläche führt dazu, dass der Inspektor zu der ausgewählten Komponente scrollen kann, damit er konfiguriert werden kann.
Physische Effekte
Einstellungen in diesem Abschnitt werden nur angezeigt, wenn das Objekt über eine RigidBody-Komponente verfügt.
Veröffentlichungsverhalten
Geben Sie an, welche physischen Eigenschaften ein bearbeitetes Objekt auf der Version beibehalten werden 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, wenn diese Option ausgewählt wird, behält er seine lineare Geschwindigkeit.
- Halten Sie Angular Geschwindigkeit fest: Wenn das Objekt freigegeben wird, wird diese Option ausgewählt, wird die Winkelgeschwindigkeit beibehalten.
Verwenden von Kräften für die nahe Manipulation
Ob Physikkräfte verwendet werden, um das Objekt beim Ausführen von Manipulationen in der Nähe zu verschieben. Wenn Sie dies auf "false " festlegen, wird das Objekt direkt mit der Benutzerhand verbunden. Dies auf "True " festgelegt wird, wird die Masse und Dietheit des Objekts honorieren, aber kann sich fühlen, dass das Objekt über eine Quelle verbunden ist. Die Standardeinstellung ist false.
Glättung
Verglätten weit
Unabhängig davon, ob eine unabhängige Framerate für viele Interaktionen aktiviert ist. Die Glattung ist standardmäßig aktiviert.
Glätten in der Nähe
Ob die unabhängige Framerate für interaktionen aktiviert ist. In der Nähe ist die Verglättung standardmäßig deaktiviert, da der Effekt möglicherweise als "getrennt" von der Hand wahrgenommen wird.
Aktives Glätten
Veraltet und wird in einer zukünftigen Version entfernt. Anwendungen sollten SmoothingFar, SmoothingNear oder eine Kombination der beiden verwenden.
Lerp-Zeit verschieben
Die Verglättung, die auf die Bewegung angewendet werden soll. Das Glätten von 0 bedeutet keine Verglättung. Max.-Wert bedeutet keine Änderung des Werts.
Drehen der Lerp-Zeit
Die Reibungsmenge, die auf die Drehung angewendet werden soll. Das Glätten von 0 bedeutet keine Verglättung. Max.-Wert bedeutet keine Änderung des Werts.
Skalierungs-Lerp-Zeit
Menge der Verglättung, die auf die Skalierung angewendet werden soll. Das Glätten von 0 bedeutet keine Verglättung. Max.-Wert bedeutet keine Änderung des Werts.
Bearbeitungsereignisse
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.
Die Ereignis fire order for manipulation is:
OnHoverStarted ->OnManipulationStarted ->OnManipulationEnded ->OnHoverEnded
Wenn keine Manipulation vorliegt, erhalten Sie weiterhin Hoverereignisse mit der folgenden Feuerreihenfolge:
OnHoverStarted ->OnHoverEnded
Physik und Kollisionen
Das Physikalische Verhalten kann durch Hinzufügen einer starrenBody-Komponente zumselben Objekt wie ein Objektmanipulator aktiviert werden. Dies ermöglicht nicht nur die Konfiguration des oben genannten Releaseverhaltens , es ermöglicht auch Kollisionen. Ohne eine starre Komponente verhalten sich Kollisionen während der Manipulation nicht richtig:
- Kollisionen zwischen einem bearbeiteten Objekt und einem statischen Kollidierungsobjekt (d. h. ein Objekt mit einem Collider, aber kein starrer) funktionieren nicht, das bearbeitete Objekt überläuft gerade den statischen Kollider.
- Kollisionen zwischen einem manipulierten Objekt und einem starren Objekt (d. h. ein Objekt mit einem Kollidieren und einem starren Objekt) führen dazu, dass der starre Mensch eine Kollisionsreaktion hat, aber die Antwort ist sprunghaft und unnatürlich. Es gibt auch keine Kollisionsantwort für das bearbeitete Objekt.
Wenn ein starrer Mensch hinzugefügt wird, sollten Kollisionen ordnungsgemäß funktionieren.
Ohne starrer Mensch

Mit Starrkörper

Elastics (Experimental)
Elastics können beim Bearbeiten von Objekten über Objektmanipulator verwendet werden. Beachten Sie, dass das Elastics-System noch im experimentellen Zustand ist. Zum Aktivieren von Elastics können Sie entweder eine vorhandene Elastics Manager-Komponente verknüpfen oder einen neuen Elastics Manager über die Add Elastics Manager
Schaltfläche erstellen und verknüpfen.
