Let’s Code mit Jens Episode 16 released

Ich habe Episode 16 meiner Videoreihe “Let’s Code mit Jens” veröffentlicht:

Aktuelles Thema: Posteingang

Sonderfall ist gelöst. Es geht weiter mit dem List-Control. Hinzufügen und Löschen von Elementen aus der Liste steht auf dem Programm.

Aber was war nun eigentlich das Problem in der letzten Folge?

Im Test hatte ich für die Elemente der Liste eine Klasse, welche von MonoBehavior ableitet erstellt. Eine Instanz dieser Klasse sollte als Prefab (Muster) für alle weiteren Elemente von der Liste verwendet werden. Aber Unity hat sich beharrlich geweigert eine Instanz zu erstellen. Der Grund dafür ist, dass Unity von Klassen, die in einem Ordner namens Editor liegen und direkt von MonoBehavior ableiten, nicht erkennt, dass es sich um ein MonoBehavior handelt. Warum? Keine Ahnung. Wie auch immer, mit diesem Wissen geht es erstmal weiter.

Das Hinzufügen von Elementen wird komplett implementiert. Dabei hat die Klasse im öffentlichen Interface nur Methoden, um mit Modellen zu arbeiten. Die Darstellung ist quasi ein Implementierungsdetail.
Natürlich soll das nicht nur im Test mit Modellen klappen, sondern auch in Unity funktionieren, also werden zum Vorführen Elemente in die Liste gehängt.

Und wieder erwischt mit Unity eiskalt. Die Elemente sind zwar in der Liste, aber werden nicht dargestellt. Schon wieder rumfailen. Nach knapp 10 Minuten geben ich auf und machen eine Pause mit der Aufnahme und zu recherchieren, was da schon wieder nicht klappt.

Wenig später (halbe Stunde) finde ich tatsächlich die Lösung. Beim Kopieren des Musters wurde von Unity die Skalierung aller Achsen auf 0 gesetzt. Also unendlich klein. Die Skalierung aller Achsen auf 1 zu setzen hilft. Und kaum habe ich die Lösung eingebaut, fällt mir auf, dass Unity mir schon die ganze Zeit in der Konsole per Logeintrag versucht hat mitzuteilen, was da eigentlich schief geht und wie die eigentliche Lösung aussieht: Man nehme eine andere Überladung der Methode SetParent.
Mit diese Wissen klappt dann auch der Rest der Implementierung des Hinzufügens von Elementen.
Auch das Entfernen von Elementen klappt dann wie geschmiert.

Nächste Folge wird dann die Selektion eingebaut und das Control zum Abschluss gebracht.

Zur Erinnerung: Der Posteingang
Über den Posteingang erhält der Spieler Transportanfragen und später auch Rechnungen und Bewerbungen. Erreicht wird der Posteingang über das Kontextmenü der Städte, sofern die jeweilige Stadt eine Filiale beherbergt. Der Posteingang wird durch ein Fenster dargstellt. Eine Liste zeigt eine Übersicht aller unbearbeiteten Eingänge. Vorerst sind das ausschließlich Transportanfragen. Wählt der Spieler einen Eintrag in der Liste aus, werden in einer Detailansicht die genauen Einzelheiten angezeigt. Bei Transportanfragen sind das Details, wie zum Beispiel die Menge, die Art und das Ziel der Fracht, sowie die Bezahlung. Über Schaltflächen in der Detailansicht kann der Spieler die Transportanfrage annehmen oder ablehnen.


I released episode 16 of my German series “Let’s Code mit Jens”: https://youtu.be/E0jXixU-XNU

Actual topic: Mailbox
I go on with the addition and deletion of elements into the List-Control. The problem of the last video is solved: Do not use MonoBehavior classes, which are defined in the editor project. Unity does not recognize them!

After some design tweaks and a fail, which forces me to make a break of the video for research, I am able get the topic done.

In the next episode and will move on implementing the selection of elements of the list control.

Quick reminder for the mailbox:
The player gets transport requests and later bills and job applications through the mailbox. The player can open the mailbox via the context menu of a city, provided that the city locates a branch office of the cooperation. The mailbox is displayed inside a window. There a list shows an overview of all open entries. For the beginning entries are only transport requests. If the player selects such an entry, details of it are shown at a detail view of the mailbox. If the entry is a transport request these details will be information such as the amount, the type and the destination of the freight and also the payment for transportation. With the help of buttons, which are located inside the detail view, the player can accept or decline the transport request.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s