Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
ConstraintManager ermöglicht es Ihnen, eine Reihe von Einschränkungskomponenten auf eine Transformation anzuwenden. Standardmäßig erfasst der Einschränkungs-Manager automatisch alle angefügten Einschränkungskomponenten und wendet sie auf das Zielobjekt an. Benutzer können die Liste der angewendeten Einschränkungen jedoch auch manuell konfigurieren und nur eine Teilmenge der angefügten Einschränkungen verwenden lassen.
Hinweis
MRTK3 bietet derzeit eine begrenzte Teilmenge der Einschränkungen von MRTK 2.x. Wir untersuchen derzeit eine Umgestaltung des Einschränkungssystems, um den Entwicklerworkflow mit Solvers und Elastics zu vereinheitlichen. Schauen Sie regelmäßig vorbei!
Derzeit unterstützen die folgenden MRTK-UX-Elemente Einschränkungen:
Der Einschränkungs-Manager kann in zwei Modi ausgeführt werden:
- Automatische Einschränkungsauswahl
- Manuelle Einschränkungsauswahl
Einschränkungsauswahl
Automatische Einschränkungsauswahl
Der standardmäßige automatische Modus listet alle angefügten Einschränkungskomponenten auf. Sie können direkt zur Komponente im Inspektor springen, indem Sie die Schaltflächen Zu Komponente wechseln verwenden oder eine neue Einschränkung aus der Dropdownliste hinzufügen.
Manuelle Einschränkungsauswahl
Wenn der Einschränkungs-Manager auf den manuellen Modus festgelegt ist, werden nur die in der Einschränkungsliste verknüpften Einschränkungen verarbeitet und auf die Transformation angewendet. Wenn der manuelle Modus zum ersten Mal aktiviert wird, füllt der Manager die Liste automatisch mit allen derzeit angefügten Einschränkungen auf.
Hinweis
Die Aktion Eintrag entfernen entfernt nur die Einschränkung aus der manuellen Auswahlliste. Die Komponente ist weiterhin im GameObject vorhanden.
Ausführungsreihenfolge
Die Ausführungsreihenfolge jeder Einschränkung kann in der Option Ausführungsreihenfolge für die Einschränkung selbst definiert werden. Die Reihenfolge wird in der Liste widergespiegelt, die im Einschränkungs-Manager angezeigt wird. Einige Einschränkungen verhalten sich anders, wenn sie in unterschiedlichen Reihenfolgen kombiniert werden. Beachten Sie daher die Prioritäten der einzelnen Einschränkungen, und passen Sie ihre Reihenfolge entsprechend an.
Transformationseinschränkungen
Sie können Einschränkungen verwenden, um die Bearbeitung auf irgendeine Weise einzuschränken. Einige Anwendungen erfordern z. B. eine Drehung und dass das Objekt aufrecht bleibt. In diesem Fall kann dem -Objekt ein RotationAxisConstraint hinzugefügt und verwendet werden, um die Drehung auf die Y-Achse zu beschränken. MRTK bietet mehrere Einschränkungen, die alle unten beschrieben werden.
Es ist auch möglich, neue Einschränkungen zu definieren und sie zu verwenden, um ein eindeutiges Manipulationsverhalten zu erstellen, das möglicherweise für einige Anwendungen erforderlich ist. Erstellen Sie dazu ein Skript, das von TransformConstraint erbt, und implementieren Sie die abstrakte ConstraintType Eigenschaft und die abstrakte ApplyConstraint Methode. Ihre neue Einschränkung sollte in der Dropdownliste angezeigt und automatisch im Einschränkungs-Manager registriert werden, wenn sie dem Objekt hinzugefügt wird.
Alle von MRTK bereitgestellten Einschränkungen verwenden die folgenden Eigenschaften:
Handtyp gibt an, ob die Einschränkung für einhändige, zweihändige oder beide Arten der Manipulation verwendet wird. Da es sich bei dieser Eigenschaft um ein Flag handelt, können beide Optionen ausgewählt werden.
- Einhändig: Die Einschränkung wird bei der einhändigen Bearbeitung verwendet, sofern ausgewählt.
- Zweihändig: Die Einschränkung wird bei der zweihändigen Manipulation verwendet, wenn diese ausgewählt ist.
ProximityType gibt an, ob die Einschränkung für nah, fern oder beide Manipulationsarten verwendet wird. Da es sich bei dieser Eigenschaft um ein Flag handelt, können beide Optionen ausgewählt werden.
- Near: Die Einschränkung wird bei der Near-Manipulation verwendet, wenn sie ausgewählt ist.
- Far: Einschränkung wird bei der Far-Manipulation verwendet, wenn diese Option ausgewählt ist.
FaceUserConstraint
Diese Einschränkung schränkt die Drehung eines Objekts so ein, dass es immer mit dem Benutzer konfrontiert wird. Die Option Face Away steuert, ob die positive oder negative Z-Achse verwendet wird.
FixedDistanceConstraint
Diese Einschränkung korrigiert den Abstand zwischen dem bearbeiteten Objekt und einer anderen Objekttransformation beim Start der Bearbeitung. Dies ist nützlich für Verhaltensweisen wie das Festlegen des Abstands zwischen dem bearbeiteten Objekt und der Kopftransformation. Das Feld Einschränkungstransformation ist standardmäßig auf die Kameratransformation festgelegt, und ist die andere Transformation, zu der das bearbeitete Objekt einen festen Abstand hat.
MaintainApparentSizeConstraint
Wenn diese Einschränkung an ein Objekt angefügt ist, unabhängig davon, wie weit das Objekt vom Benutzer entfernt ist, behält es die gleiche scheinbare Größe für den Benutzer bei (d. h. es nimmt den gleichen Anteil des Benutzerfelds ein). Dies kann verwendet werden, um sicherzustellen, dass ein Slate- oder Textbereich während der Bearbeitung lesbar bleibt.
MoveAxisConstraint
Diese Einschränkung kann verwendet werden, um zu korrigieren, entlang welcher Achsen ein bearbeitetes Objekt verschoben werden kann. Dies kann nützlich sein, um Objekte über die Oberfläche einer Ebene oder entlang einer Linie zu bearbeiten.
Das Feld Einschränkung für Bewegung gibt an, auf welchen Achsen eine Bewegung verhindert werden soll. Standardmäßig sind diese Achsen global und nicht lokal, aber dies kann unten geändert werden. Da es sich bei dieser Eigenschaft um ein Flag handelt, kann eine beliebige Anzahl von Optionen ausgewählt werden.
MinMaxScaleConstraint
Diese Einschränkung schränkt die Skalierung eines Objekts ein, was nützlich ist, um zu verhindern, dass Benutzer Objekte auf unbrauchbar kleine oder große Größen skalieren. Es funktioniert sowohl für die handlebasierte Skalierung (mit BoundsControl) als auch für die zweihändige direkte Skalierung (mit ObjectManipulator). Die Option Relativ zum Anfangszustand definiert, ob die spezifischen Minimum - und Maximum-Skalierungswerte absolute Werte sind oder ob sie auf der anfänglichen Skalierung des Objekts multipliziert werden.
RotationAxisConstraint
Diese Einschränkung kann verwendet werden, um zu korrigieren, welche Achsen ein bearbeitetes Objekt gedreht werden kann. Dies kann nützlich sein, um ein bearbeitetes Objekt aufrecht zu halten, aber weiterhin Y-Achsendrehungen zuzulassen.
Das Feld Einschränkung für Drehung gibt an, um welche Achsen drehung verhindert werden soll. Standardmäßig sind diese Achsen global und nicht lokal, aber dies kann unten geändert werden. Da es sich bei dieser Eigenschaft um ein Flag handelt, kann eine beliebige Anzahl von Optionen ausgewählt werden.