UnityUI-Tools – MRTK3
UnityUI ist möglicherweise nicht das erste Tool, an das Mixed Reality-Entwickler beim Erstellen von 3D-Benutzeroberflächen denken. Aber mit einigen Hilfskomponenten und Hilfsprogrammen ist es möglich, schöne und flexible 3D-Benutzeroberflächen in UnityUI zu erstellen.
Tipp
Beim Erstellen von UnityUI ist es einfach, Leistungsengpässe zu erstellen. Bevor Sie komplexe UnityUI-Layouts erstellen, sollten Sie dieses Tutorial lesen.
Beispiel
Im UnityUI-Beispiel finden Sie Demonstrationen verschiedener Komponenten, die für UnityUI erstellt wurden.
Komponenten des Benutzeroberflächenverhaltens
Die folgenden Komponenten helfen beim Rendern der Benutzeroberfläche, aber sie sind keine sichtbaren Grafikkomponenten .
ScaleMeshEffect
Bei UnityUI-Komponenten ist die unity_ObjectToWorld
Matrix (oder UNITY_MATRIX_M
in URP) nicht die Transformationsmatrix der lokalen Transformation, auf der sich die Grafikkomponente befindet, sondern die des übergeordneten Canvas-Elements. Für viele Shadereffekte in Grafiktools muss die Objektskalierung bekannt sein. Um dieses Problem zu beheben, speichert das ScaleMeshEffect.cs während der Erstellung von UI-Gittern Skalierungsinformationen in UV-Kanalattributen.
Tipp
Ein Canvas - oder CanvasRenderer in Grafiktools fordert zum Hinzufügen eines ScaleMeshEffect.cs auf, wenn ein solcher erforderlich ist.
RectMask2DFast
UnityUI verfügt über eine integrierte Komponente namens RectMask2D. Normalerweise wird diese Komponente verwendet, um einen kleinen Abschnitt eines größeren Bereichs zu maskieren. Beim Maskieren vieler Objekte kann dieser Prozess viel Zeit in Anspruch nehmen, um Objekte auf der CPU auszuullen. Um diesen Engpass zu vermeiden, enthält Grafiktools eine RectMask2DFast
Komponente.
RectMask2DFast
funktioniert auf die gleiche Weise wie RectMask2D
und ist ein empfohlener Ersatz. Wenn ein Problem auftritt, bei dem die Maskierung nach dem Hinzufügen oder Entfernen von RectMask2DFast
Objekten aus nicht aktualisiert wird, müssen Sie möglicherweise ein Update wie folgt manuell aufrufen:
myRectMask2DFast.ForceClip = true;
Alle Grafiktools/Canvas/-Shader und die Grafiktools/Standard Canvas-Shader unterstützen RectMask2D
, RectMask2DFast
und RoundedRectMask2D
.
Hinweis
Die Grafiktools/Canvas/Shader und grafiktools/Standard Canvas-Shader unterstützen die Weichheitseigenschaft auf RectMask2D
oder nicht.RectMask2DFast.
RoundedRectMask2D
RoundedRectMask2D
von abgeleitet und RectMask2DFast
verhält sich ähnlich. Der einzige Unterschied besteht darin, dass RoundedRectMask2D
ein Eckradiuswert für abgerundete Ecken enthält. Dieser Radius kann für alle Ecken oder jede Ecke einzeln ausgewählt werden.
Hinweis
Die materielle Instanziierung muss vom Benutzer gesteuert werden. d. h. gemeinsame Materialien können durch RoundedRectMask2D
erfolgen.
Grafikkomponenten der Benutzeroberfläche
Die folgenden Grafikkomponenten helfen beim Hinzufügen von 3D-Dimensionalität zu einer Canvas.
CanvasElementRoundedRect
Diese Komponente generiert prozedural ein gerundetes 3D-Rechteckgitter, das dann dem Vertexstream der Canvas zugewiesen wird. Normalerweise wird diese Komponente verwendet, um Backplate-Gitter mit dem Grafiktools/Canvas-/Backplate-Shader zu generieren.
CanvasElementBeveledRect
Genau wie CanvasElementRoundedRect
generiert diese Komponente prozedural ein abgerundetes 3D-Rechteck, aber mit abgeschrägten Kanten. Normalerweise wird diese Komponente verwendet, um Rückplattengitter mit dem Grafiktools/Canvas/Abgeschrägten Shader zu generieren.
CanvasElementMesh
Die MeshRenderer-Komponente von Unity kann zum Anzeigen von 3D-Gittern in UnityUI verwendet werden, berücksichtigt jedoch einige der Layoutfeatures von UnityUI nicht. Um diese Layoutprobleme zu beheben, gibt es die CanvasElementMesh
-Komponente.
Die CanvasElementMesh
Komponente verwendet ein Eingabegitter und übersetzt es in eine Graphic
Komponente.
Wichtig
Für das Eingabegitter muss die Eigenschaft Lesen/Schreiben aktiviert sein, damit Scheitelpunkte innerhalb des Skripts gelesen werden können.
Animation
Zum Animieren von UnityUI-Materialeigenschaften können Sie die CanvasMaterialAnimator...- Klassen verwenden. Weitere Informationen finden Sie in der Dokumentation zur Animation .
Menüelemente
Zur Unterstützung des Ui-Layouts gibt es eine Handvoll Menüelemente in den Grafiktools.
Anker an Ecken und Ecken zu Ankern
Fenster > Grafiktools > Canvas Anchors > Anchors to Corners and Window > Graphics Tools > Canvas Anchors Corners > to Anchors ermöglicht es Ihnen, zwischen dem Ausdrücken des Layouts im Anheftsystem und dem Ankersystem (Einschränkung) von RectTransform hin- und herzuwechseln. Dies kann nützlich sein, wenn Sie zwischen dynamischen und festen Skalierungslayouts wechseln.