Jump to content
Unity Insider Forum

Recommended Posts

Hallo

 

Ich will in meinem Spiel ein kleines Questfenster bauen und bin mir gerade überhaupt nicht sicher, ob ich da den richtigen Ansatz wähle. Ich stelle euch hier mal vor, wie ich das gemacht habe und freue mich über Rückmeldung a la "Was? Bist du verrückt?", "So mache ich das auch. Das passt." oder "Junge, das ist 90er, heute wird da so und so gemacht.". 

Grundsätzlich habe ich ein UI-Canvas. In diesem sind die einzelnen Canvas für die einzelnen Fenster. Eins davon ist eben das Questfenster.

Unter diesem habe ich QuestCanvasParent, der auf ein Event wartet, um das Fenster zu zeigen.

    - Unter diesem habe ich das eigentliche QuestCanvas - darin:

        - eine TextBox für den Titel

        - ein Canvas für die einzelnen UI-Elemente - darin:

            - ein Canvas für die Namen der Quest

            - ein Canvas für die Beschreibung der jeweiligen Quest

            - ein Canvas für die Attribute der jeweiligen Quest

Meistens versuche ich den jeweiligen Parents eine GridLayout zu geben damit ich mich nicht um die Positionierung kümmern muss. Ist das so in Ordnung? Mir scheint es sehr frickelig zu sein. Ich habe früher viel mit Forms und WPF gearbeitet und in meiner Erinnerung ging das besser und unkomplizierter. Vielleicht ist da der retrospektive Blick aber auch getrübt.

 

Christoph

Link to post
Share on other sites

Sind ein bisschen zu viele Canvas imo. Du verschachtelst die Dinger ja, um Repaints zu minimieren. Dass nicht jedes Mal, wenn du über einen Button hoverst und dieser animiert wird, erstmal der statische Questtext repainted wird. Name, Beschreibung und Attribute ändern sich vermutlich nicht, daher dürfen die alle zusammen in einen Canvas.

Layout-Elemente versuche ich zu vermeiden, so viel es geht. Die können gerade verschachtelt sehr anstrengend werden. Ich versuche da so viel wie möglich mit Anchors und Pivots zu arbeiten.

Ansonsten joa...

vor einer Stunde schrieb chrische5:

"So mache ich das auch. Das passt."

 

  • Like 1
Link to post
Share on other sites

Hallo 

 

Ich habe die Canvase eher als Ordnungsmittel genutzt, also zum Gruppieren der zusammen gehörenden UI-Elemente. So richtig ist mir da auch nicht klar, ob man da besser Panel nutzt oder einfach nur ein GO. Wie macht ihr das? 

 

Christoph 

 

Link to post
Share on other sites

Was ist denn ein "Panel"? Schau dir mal ein "Panel" an - das ist auch nur ein GameObject mit nem Hintergrundbild in einer Image-Komponente. GameObjects kannst du beliebig viele ineinander schachteln, um dein gwünschtes Ergebnis zu erzielen.

Einen Canvas solltest du dann einsetzen, wenn alle untergeordneten Objekte sich gleichzeitig updaten. Es wird halt alles neu gezeichnet, was in demselben Canvas ist, wenn eines der Elemente sich ändert. Wenn du also ein statisches Ding hast und ein Ding, das sich ändert - und sie sind in demselben Canvas - dann wird das statische Ding auch neu layouted, auch wenn sich am Layout des statischen Dings gar nichts geändert hat. Trennst du die beiden Dinge, indem du sie in unterschiedliche Canvase steckst, dann spart Unity sich das unnötige Layouting. Deshalb macht man das.

  • Like 1
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...