Manuals
Manuals




This translation is community contributed and may not be up to date. We only maintain the English version of the documentation. Read this manual in English

GUI-Box-Knoten

Ein Box-Knoten (box node) ist ein Rechteck, das mit einer Farbe, einer Textur oder einer Animation gefüllt ist.

Box-Knoten hinzufügen

Füge neue Box-Knoten hinzu, indem du in der Ansicht Outline einen Rechtsklick ausführst und Add ▸ Box wählst, oder drücke A und wähle Box.

Du kannst Bilder und Animationen aus Atlanten oder Kachelquellen (tile sources) verwenden, die der GUI hinzugefügt wurden. Du fügst Texturen hinzu, indem du in der Ansicht Outline einen Rechtsklick auf das Ordnersymbol Textures ausführst und Add ▸ Textures... wählst. Lege anschließend die Eigenschaft Texture des Box-Knotens fest:

Texturen

Beachte, dass die Farbe des Box-Knotens die Grafik einfärbt. Die Farbe für die Einfärbung wird mit den Bilddaten multipliziert. Wenn du die Farbe auf Weiß (den Standardwert) setzt, wird daher keine Einfärbung angewendet.

Eingefärbte Textur

Box-Knoten werden immer gerendert, auch wenn ihnen keine Textur zugewiesen ist, ihr Alpha auf 0 gesetzt ist oder ihre Größe 0, 0, 0 beträgt. Box-Knoten sollten immer eine Textur zugewiesen bekommen, damit der Renderer ihre Zeichenoperationen korrekt bündeln (Batching) und die Anzahl der Zeichenaufrufe (draw calls) verringern kann.

Animationen abspielen

Box-Knoten können Animationen aus Atlanten oder Kachelquellen abspielen. Weitere Informationen findest du im Handbuch zur Flipbook-Animation.

Texturierung mit Neun-Segment-Skalierung

GUI-Box-Knoten (box nodes) und Sprite-Komponenten (sprite components) stellen manchmal Elemente dar, deren Größe vom jeweiligen Kontext abhängt: Bereiche und Dialogfelder, deren Größe an den enthaltenen Inhalt angepasst werden muss, oder eine Lebensanzeige, deren Größe die verbleibende Gesundheit eines Gegners widerspiegeln muss. Dabei können Darstellungsprobleme entstehen, wenn du den in seiner Größe angepassten Knoten oder das Sprite mit einer Textur versiehst.

Normalerweise skaliert die Engine die Textur so, dass sie in die rechteckigen Grenzen passt. Durch das Festlegen von Randbereichen für die Neun-Segment-Skalierung (9-slice) kannst du jedoch einschränken, welche Teile der Textur skaliert werden sollen:

GUI-Skalierung

Die Einstellung Slice9 des Box-Knotens besteht aus 4 Zahlen. Sie geben jeweils die Anzahl der Pixel für den linken, oberen, rechten und unteren Rand an, die nicht auf die übliche Weise skaliert werden sollen:

Eigenschaften der Neun-Segment-Skalierung

Die Ränder werden im Uhrzeigersinn festgelegt, beginnend am linken Rand:

Bereiche der Neun-Segment-Skalierung

  • Ecksegmente werden niemals skaliert.
  • Randsegmente werden entlang einer einzelnen Achse skaliert. Die linken und rechten Randsegmente werden vertikal skaliert. Die oberen und unteren Randsegmente werden horizontal skaliert.
  • Der mittlere Texturbereich wird nach Bedarf horizontal und vertikal skaliert.

Die oben beschriebene Texturskalierung mit Slice9 wird nur angewendet, wenn du die Größe des Box-Knotens oder des Sprites änderst:

Größe des GUI-Box-Knotens

Größe des Sprites

Wenn du den Skalierungsparameter des Box-Knotens, des Sprites oder des Spielobjekts (game object) änderst, werden der Knoten oder das Sprite und die Textur skaliert, ohne die Parameter von Slice9 anzuwenden.

Wenn du die Texturierung mit Neun-Segment-Skalierung für Sprites verwendest, muss Sprite Trim Mode des Bildes auf Off gesetzt sein.

Mipmaps und Neun-Segment-Skalierung

Aufgrund der Funktionsweise von Mipmapping im Renderer können beim Skalieren von Textursegmenten manchmal Artefakte auftreten. Das geschieht, wenn du Segmente gegenüber der ursprünglichen Texturgröße verkleinerst. Der Renderer wählt dann für das Segment eine Mipmap mit geringerer Auflösung aus, was zu sichtbaren Artefakten führt.

Mipmapping bei der Neun-Segment-Skalierung

Um dieses Problem zu vermeiden, stelle sicher, dass die zu skalierenden Segmente der Textur klein genug sind, sodass sie niemals verkleinert, sondern nur vergrößert werden müssen.