Objektmanipulator – MRTK2
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.
Eigenschaften und Felder der Inspektor
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.
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
Mit Starrkö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.