Jump to content
Unity Insider Forum

SelectionList


Recommended Posts

Ohhhh ja, da hab ich auch lange dran gesessen :D

Erstmal sollte gesagt sein das die neue UI ja alle Objekte als GameObjects behandelt.

 

Ich mache dies immer über das Layout system:

 

Erstelle Canvas

-> Panel (Für die Liste)

--> Scroll Rect (Um die Liste auch durchscrollen zu können ansonsten weglassen)

---> Button (Dein Listenelement zum anklicken)

 

In das Panel fügst du nun unter AddComponent im Inspektor unter Layout eine Vertical Layout Group hinzu.

Dem Scroll Rect und dem Button gibst du ein Layout Element. (Dort kannst du dann verschiedene Einstellungen zum verhalten innerhalb der LayoutGroup vornehmen)

 

Den Button speicherst du als Prefab und instanzierst ihn dann einfach in den ScrollRect (wenn es denn einen Gibt ansonsten ins Panel). Somit sollten sie sich säuberlich untereinander anordnen :)

 

Gruß Neoxit

 

EDIT:

Instanzierst am besten die Buttons über eine Liste die du dir vorher erstellt hast. :)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi,

erstmal Danke für deine Antwort. So ähnlich habe ich das schon gemacht in den kleinen Editor den ich gebastelt habe. Da gehts aber, da keine Elemente zur Laufzeit hinzukommen.

 

Werde es mit der alten UI machen müssen. Die Länge der Liste muss dynamisch sein. Sie wird quasi mit Informationen gefüllt die von einem Server kommen. Mal schauen, das Design der Liste kann man auch optisch anpassen das es zu den restlichen Elementen passt. Nützt ja nix :D .

 

Danke nochmal.

 

MfG Felix

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi,

nein wir reden nicht einander vorbei :-)

 

Ich werde es erstmal so ansetzten wie Du es vorschlägst.

Mir gehts halt auch bissl darum wie viel Leistung das Fressen könnte. Wird nicht viel sein, aber von der Logik ist die alte Selectionlist schon mal geringer. Wenn ich halt 1000 Einträge habe, kann ich die dort als String behandeln. Mit der neuen UI zusätzlich noch Buttons als GameObject.

 

 

MfG Felix

Link zu diesem Kommentar
Auf anderen Seiten teilen

Da gehts aber, da keine Elemente zur Laufzeit hinzukommen. Werde es mit der alten UI machen müssen. Die Länge der Liste muss dynamisch sein. Sie wird quasi mit Informationen gefüllt die von einem Server kommen.

 

Nicht aufgeben - ich lad dir gerade ein kleines Tutorial hoch ;-)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Der Upload dauert noch ein paar Minuten ... mal sehen, wie lange Vimeo dann noch braucht, bis man's sich auch anschauen kann. In der Zwischenzeit habe ich mir kurz deine Performance-Bedenken angesehen: Also zumindest auf dem Desktop scheinen 1800 Buttons in der Liste keine spürbaren (oder in den Stats sichbaren) Verzögerungen zu erzeugen. Außer das Erzeugen selbst natürlich ;-)

 

Wenn du allerdings mehr als 1800 Buttons in die Liste packst (beim 1821sten, um genau zu sein), gibt's einen Fehler:

 

Canvas element contains more than 65535 vertices. This is not supported

 

Wenn du das Hintergrundbild beim Button weglässt sind es maximal rund 2300 Einträge in der Liste. Aber ganz ehrlich: Kein Mensch möchte sich durch mehr als wenige hundert Einträge durchwuseln - da wäre dann ein Filter wohl schon angemessen (ich denke mehr als 100 Einträge in einer Liste sind von der Usability her eher keine so gute Idee).

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hier das kleine Tutorial zum Erstellen einer dynamischen Selection List mit dem neuen Unity UI:

 

 

EDIT: Dazu gibt's jetzt auch ein Posting (mit Link auf das Beispielprojekt, einschließlich den Erweiterungen für die Performance-Tests) bei Video Tutorials:

 

[Tutorial Deutsch] Unity UI: Dynamische Selection List erstellen

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi,

super Tutorial jashan. Das hat mir sehr geholfen und wird auch noch anderen helfen.

Scheinbar muss ich mich noch mehr mit den neuen UI-System beschäftigen. Die Layout-Elemente waren mir ehrlich gesagt neu und der Grund warum ich dachte es wird schwierig oder so wie ich es wollte scheitern.

 

Ja 1000 Elemente sind bissl hoch gegriffen. Wollte es damit nur verdeutlichen.

 

Die Buttons sollen halt die Namen der Rennstrecken repräsentieren. Bei einem 2D Spiel ist eine Bildvorschau schwierig. Zumal der Streckeneditor auch mit auf dem Smartphone ist.

 

Da programmiere ich heute Abend mal fleißig und schau das ich eine gute Projektvorstellung hinbekomme, das ihr auch mal was davon zusehen bekommt.

 

Bin sogar schon am überlegen ob ich es 2,5D mache, was eigentlich in meinen Fall nicht sehr schwerer wird. Hatte alles schon mal vorbereitet und weiss selber nicht mehr wie ich darauf gekommen bin es 2D zu machen.

 

 

MfG Felix

Link zu diesem Kommentar
Auf anderen Seiten teilen

Archiviert

Dieses Thema ist jetzt archiviert und für weitere Antworten gesperrt.

×
×
  • Neu erstellen...