Widget richtig dynamisch skalieren

  • Hallo zusammen!


    Wie genau macht man ein Widget das sich automatisch an die Größe des Monitors und dementsprechend an die Auflösung des Anwenders anpasst?

    Das mit sehr viel Inhalt und auch so das es noch gut lesbar ist, ohne das es zur Unkenntlichkeit skaliert wird?


    Eine weitere Sache ist, das ich 2x Canvas Panel hintereinander brauche (um das Fenster im Spiel, frei verschiebbar zu machen).

    Siehe Screenshot.


    Das ist mein CharacterMenü, überarbeitet (ja ich weiss, ich kriege das nicht schöner hin).


    Jedenfalls ist dort sehr viel integriert was auch sehr wichtig ist und man gut lesen können muss, unabhängig von der Auflösung.

    Das Fenster ist frei verschiebbar, das will ich unbedingt beibehalten (wenn möglich noch frei Skalierbar).


    Jedenfalls habe ich nun das Problem das beim Testen das Bild (2 Clients gleichzeitig) nur halb angezeigt wird, es soll sich aber entsprechend an die Auflösung anpassen.



    Ich selber verwende 21:9 mit 3440x1440.

    Im Editor steht aber noch 16:9 mit 1920x1080.



    Wie mache ich das nun das alles perfekt sitzt?

  • Ich glaube, das ist eines der schwierigeren Aufgaben überhaupt. Das wichtigste dabei sind jedoch die Anchorpunkte.


    Die Anchorpunkte kannst sind sehr vielfältig. Du kannst ein Objekt an einer Position halten, indem du den Anchor zum Beispiel in die Mitte des Elements setzt. Du kannst aber auch die vier Eckpunkte eines Elementes festlegen, zum Beispiel bei einem Button, Image oder so, was dann auch die Skalierung des Elementes beeinflusst.


    Was das Ganze jetzt so richtig kompliziert macht, ist, Je nachdem auf was ein Element gesetzt ist, Grid oder zum Beispiel Text auf ein Button usw., hast du eben halt diese Anchors zur Verfügung. Es gilt aber, dass das Parentelement das Childelement beeinflusst. Also hierarchisch.


    Da ein derartiges Widget aber sehr individuell erstellt wird, glaube ich nicht das man dir da jetzt die einzige und wahre Lösung sagen kann. Höchstens allgemeine Tipps wie du vorgehen kannst und wie etwas funktioniert. Also grundsätzlich funktioniert, weil ja die Hierarchie auch eine große Rolle spielt.


    Kleine Anmerkung, was ich so festgestellt habe, Texte, z.B. in Buttons oder so, werden offensichtlich nie mit skaliert, oder sagen wir mal bei mir noch nie, was dann auch noch zu berücksichtigen wäre.

    • Offizieller Beitrag

    Wie genau macht man ein Widget das sich automatisch an die Größe des Monitors und dementsprechend an die Auflösung des Anwenders anpasst?

    Willst du das wirklich ?


    Bei einem Ultrawidescreen oder mehren Splitmonitoren wäre ein Button ja ewig langgezogen.


    Ich glaube das würde extrem seltsam und falsch aussehen.


    Mein Vorschlag: Du ließt die eingestellte Resolution aus und verwendest für 16:9 und deinem 21:9 ein festgelegtes Widget und für alle anderen größen ein default Widget das immer funktioniert.


    Beim Auslesen der Resolution musst du aber aufpassen es eine Windows festgelegte Auflösung und eine Unreal von Unreal festgelegte Resolution.


    Wir hatten jedenfalls schon das Problem das die Auslösung immer gleich war egal was wir in Windows eingestellt haben. Programme treten dann vor allem bei unterschiedlichen Monitor größen auf.

    bei multi touch Anwendungen hat dann auch das druck raster nicht mehr gestimmt.

  • Danke!


    Das mit der DPI Kurve hatte ich gar nicht auf dem Schirm gehabt.

    Was bisher noch sehr gut funktioniert ist, wenn man 3x Canvas Panel hintereinander gruppiert/stapelt, und man packt den ganzen Inhalt in das dritte Canvas Panel.

    Dort bleibt es soweit gut angepasst und ist noch dehnbar (bis zu einem gewissen grad)!


    Dabei kann man das zweite Canvas Panel dafür verwenden, es im Live betrieb skalieren zu können (fenster verschieben, verkleinern, vergrößern usw.)

    Dann kann der Spieler bedingt selber einstellen wie dieser das Widget in der Größe haben möchte.

  • Was bisher noch sehr gut funktioniert ist, wenn man 3x Canvas Panel hintereinander gruppiert/stapelt, und man packt den ganzen Inhalt in das dritte Canvas Panel.

    Gehen tut grundsätzlich alles. Man verliert nur halt schnell die Übersicht beim Programmieren, bzw. Zeichnen, erstellen? Wie auch immer man das nennen mag. Ich meine, irgendwann hat man eine gewaltige Baumstruktur zu verwalten, die nicht nur in den Zweigen an Sich wichtig ist, sondern auch Hierarchisch von oben nach unten. Und wenn dann noch etwas wieder nicht so skaliert wird wie erhofft, dann etwas zu ändern, das kann schnell alles durcheinander werfen.


    Deswegen, sowas in einem Forum dann zu besprechen ist fast unmöglich. Eigentlich bräuchtest du für sowas ein Buch in dem du immer schön hin und her wälzen kannst je nachdem was du gerade brauchst.

  • Narovana auf youtube hat ein Video dazu gepostet


    Externer Inhalt www.youtube.com
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklären Sie sich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.


    scheint gut zu funktionieren ;)