Jump to content
Unity Insider Forum

[Tutorial Deutsch] Unity UI: Dynamische Selection List erstellen


jashan

Recommended Posts

Inspiriert von der Frage von Felix zu SelectionList habe ich eben mal ein kleines Video-Tutorial zu eben diesem Thema erstellt und freue mich über Feedback (und natürlich, wenn es dem Einen oder Anderen nützt):

 

 

Und das Beispielprojekt dazu (ist ein Unity-Package, kann man in ein beliebiges Projekt importieren, entpackt sich ins Verzeichnis "Examples"):

 

SelectionListExample

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 1 month later...
  • 4 weeks later...
Eine Frage habe ich jetzt trotzdem noch: Kann man auf den Child Text irgentwie nach der Instanzierung zugreifen?.

 

Klar! So wie's in dem Beispiel implementiert ist, wäre es etwas umständlich, weil die einzelnen Einträge nur in einem Stack verwaltet werden, der nur dazu gedacht ist, leicht Einträge löschen zu können.

 

Aber du könntest die Einträge problemlos auch in einer entsprechenden Liste verwalten und dann über diese Liste direkt auf jeden beliebigen Eintrag zugreifen.

 

Für einen Inventar würde ich da wahrscheinlich eine Komponente (=Script) InventoryItem bauen, und auf das Wurzelelement der Einträge legen (das wäre im Beispiel bei dem Prefab "Button"). Dieses InventoryItem würde sich dann z.B. darum kümmern, dass das korrekte Bild angezeigt wird, und was man sonst noch so braucht. Dann könntest du irgendwo (wo es halt gut passt) eine List<InventoryItem> haben, und über diese alles machen, was InventoryItem anbietet (z.B. Text ändern, sofern man mit Texten arbeitet, oder Bild ändern ... oder auch die Anzahl ändern, wenn es ein "Stackable Item" ist).

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich arbeite mit einem Dictionary das als Key den Itemnamen aus InventoryItem bekommt. (InventoryItem ist Component vom jeweiligen Item)

Als Value wird ein Sprite und die quantity mitgegeben.

 InventoryItemProperties ip = new InventoryItemProperties();
ip.texture = texture;
ip.quantity = 1;  
items.Add(itemName, ip);

 

Danach wird ein neuer Eintrag in der SelectionList vorgenommen aber da hänge ich jetzt.

Ich habe kein Plan von zur Laufzeit Dinge mit der GUI anzustellen.

 

Also müsste ich jetzt den Stack ersetzen durch eine List. Dort drin auch speichern welche Texture und welcher Text für die Anzahl angezeigt werden soll. Und das wieder in einer UpdateView() oder s.ä zeichnen lassen?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Join the conversation

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

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Clear editor

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

Lädt...
×
×
  • Neu erstellen...