Jump to content
Unity Insider Forum

Recommended Posts

Hallo Leute,

ich habe da mal eine Frage, wie kann ich Buttons, images , Textfelder... vernuenftig anordnen? Dabei geht es weniger um die X,Y Achse sondern eher darum was im Vordergrund und Hintegrund ist. Ich habe irgendwo gelesen das es auf die Hierarchy der Objekte ankommt. Das funktioniert bei mir aber nicht. Gibt es noch einen anderen Weg einfach einzustellen welches Objekt vor dem anderen liegt? Vielleicht ein bestimmtes Component?

 

Ich bin dankbar fuer jede Hilfe

Share this post


Link to post
Share on other sites

Das mit der Hierachie funktioniert einwandfrei. Garantiert auch bei dir.
Alles was innerhalb einens Canvas ist, wird von hinten nach vorne gezeichnet. Also ist das oberte Element im Hierachiebaum ganz hinten, und das nächste eine Ebene drüber, usw....

 

  • Like 1

Share this post


Link to post
Share on other sites

mhh okay kann es sein das bestimmte Components diese Reihenfolge veraendern? Ich habe zum Beispiel ein Sprite das ich als Character benutze und das soll natuerlich hinter aufgerufende Menues laufen aber es ist immer davor egal wie weit ich den character nach oben in der hierarchie packe. Auch bei einzelnen anderen Elementen hab ich das Problem. Z.b habe ich eine Healtbar und an beiden enden ein Emote . Die Healtbar is an der richtigen Position die Emotes jedoch nicht. Deshalb hatte ich gehofft das es vielleicht noch einen anderen schoeneren Weg gibt.Auch weil ich dachte ich koennte die Hierarchie so anlegen das sie uebersichtlich ist.

Share this post


Link to post
Share on other sites

Versteh ich nicht... das sind doch jetzt unterschiedliche Dinge.
Ein Sprite ist ein Gameobject in der Welt. Ein Canvas ist nur dann ein Object in der Welt, wenn du es in Inspector auf WorldSpace schaltest. Das macht man aber eigentlich nur bei 3D Games, wo UI Anzeigen auf 3D Objekten projeziert sein sollen. Ansonsten ist die UI immer über allen anderen Dingen.
Ist denn dein Canvas für die UI Anzeigen auf ScreenSpaceOverlay geschaltet? Wenn ja, kann das Sprite nie davor liegen.

Zeig doch mal einen Screenshot.
 

  • Like 1

Share this post


Link to post
Share on other sites

Also ich hab rausgefunden das es bei meinem Sprite daran lag das ich es mit .transform bewegt habe und dafuer ein Vector2 benutzt habe und nicht Vector3. Dadurch wurde die Z achse auf -3300 gesetzt. Deshalb war es immer im Vordergrund.Ich habe das gleiche Problem auch noch mit anderen Elementen ich werde erstmal gucken ob ich selber herausfinde woran es liegt.

Share this post


Link to post
Share on other sites

Hey tut mir leid das ich den Thread nochmal aufmachen muss aber irgendwie funktioniert es nicht so wirklich bei mir. Ich habe einige Sprites und einige Buttons zum Beispiel. Das Problem ist das ich die Sprites mit dem SpriteRenderer sortiere. Die Buttons haben aber keinen SpriteRenderer, wie kann ich also ALLE  Arten von Objecten zusammen  anorndnen in der Z Achse?

Einige Buttons müssen zum Beispiel zwischen zwei Sprites angezeigt werden. Andere wiederum müssen nach ganz vorne in den Vordergrund.

 

Es wäre super wenn mir da jemand helfen könnte

Share this post


Link to post
Share on other sites

Hallo,

Ich hoffe das dies dir weiterhilft.

Render Modes

Die wichtigste Eigenschaft des Canvas ist der Render Mode.Dieser legt fest, auf welche weise bzw. von wem der Canvas mit all seinen Objekten gerendert werden soll.

Screen Space - Overlay

Dies ist die Standarteinstellung.Der Canvas passt sich der Größe des aktuellen Bildschirms an und wird mit seinen Objekten über das normale Kamerabild gelegt.Hast du mehrere Canvas mit dieser Einstellung in einer Szene, kannst du über den Parameter Sort Order festlegen, in welcher Reihenfolge die Canvas gezeichnet werden und welche Objekte im Vordergrund stehen sollen.

Screen Space - Camera

In diesem Modus passen sich die Maße des Canvas ebenfalls dem Bildschirm an.Allerdings verhält sich der Canvas so, als wenn dieser auf eine Plane Projiziert wird, dessen Entfernung zur Kamera über den Parameter Plane Distance festgelegt wird. Die Kamera, sowohl als Ausgangspunkt genommen werden soll als auch die tatsächliche Darstellung des Canvas übernimmt, weist du der Eigenschaft Render Camera zu. Aus diesem Grund haben auch die Kameraeinstellungen Einfluss auf die Visualisierung der GUI-Objekte. Wenn der Projection-Modus der Kamera z.B auf -Perspective- steht, kannst du nun auch die GUI-Controls mit räumlicher Tiefe darstellen, was im Overlay Modus nicht geht.

World Space

Der Modus -World Space- lässt den Canvas als normales GameObject innerhalb einer Szene nutzen. So kann man es skalieren, drehen und in der Szene platzieren. Willst du Buttons oder andere interaktive Controls auf diese Weise in der Szene platzieren, beachte hierbei, das du dem Canvas-Parameter -Event Camera- die Kamera zuweist die das Bild rendert.

 

Quelle: "Spiele Entwickeln Mit UNITY 5; Hanser Verlag" Autor: Carsten Seifert.

 

Gruß Jog

 

Share this post


Link to post
Share on other sites

Vom was redest nun? Transforms oder Rectransform (also Spielobjekte oder UIobjekte). Je nach dem wird nach Hierarchy, Z-Achse, Render Order, oder Layer sortiert.

Am 10.9.2019 um 00:07 schrieb Strooja0108:

Einige Buttons müssen zum Beispiel zwischen zwei Sprites angezeigt werden. Andere wiederum müssen nach ganz vorne in den Vordergrund.

1. SpriteRenderer oder Sprites gibt es in UI gar nicht einfach so. Es gibt Image und ImageRaw, wo man Sprites oder Texturen zu weisen kann, denn die SpriteRenderer selbst benutzen Sprites aus dem Assetordner. Du hast vllt SpriteRenderer (das GameObject) da einfach rein geschoben, anders kann ich mir das nicht erklären. Das heißt du kannst dafür Images benutzen. Deswegen gibt es da keine Orders in den Components. Man benutzt dafür die Hierarchy wie Malzbie schon geschrieben hat.

2. Du muss deutlicher werden. Man kann nicht nachvollziehen, weil du davon ausgehst, dass wir es schon verstehen. Deswegen hat schon Malzbie auch nicht verstanden und mir geht es gerade genauso. Du scheinst, aber etwas zu verwechseln und gehst halt mit den Gedanken weiter. Ist jetzt nur meine Vermutung.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

×
×
  • Create New...