Skripting in Unity Grundkurs

Arrays und Listen verstehen

Testen Sie unsere 1985 Kurse

10 Tage kostenlos!

Jetzt testen Alle Abonnements anzeigen
Ein Array, eine Liste, hält Daten fest und listet sie sozusagen der Reihe nach auf. Dieses Video erklärt, wofür man solche Strukturen verwendet und wie man sie aufbaut.
09:10

Transkript

Wenn wir einkaufen gehen, und uns eine Einkaufsliste schreiben, dann ist diese Einkaufsliste ganz ähnlich einem Array, das wir uns in diesem Video genauer anschauen möchten. Denn wenn wir die Einkaufsliste uns genau ankucken, und die Unterschiede zwischen Brot, Milch und Eiern mal außen vorlassen, ist diese Liste eigentlich nur eine Auflistung von Text. In Eintrag 1 steht ein Text, in Eintrag 2 steht ein Text, in Eintrag 3 und so weiter und so weiter, und genau so etwas wird in Programmcodes per Array realisiert. Arrays müssen dabei auch deklariert werden, das heißt vorbereitet werden, und das geht ganz ähnlich wie bei den Variablen. Wir fangen an, ich beginne hier mit dem Schlüsselwort Public, das mache ich nur, damit wir gleich in Unity im Inspektor die Liste auch sehen können, beziehungsweise das Array, müsste aber nicht sein, dann zum Beispiel String, und jetzt, bis zu dem Punkt sind wir noch ganz ähnlich bei der Variablen, aber was jetzt noch kommt, sind eckige Klammern, diese können Sie setzen mit der Taste Alt Gr + 8, und Visual Studio hilft Ihnen, die eckige Klammer zu, würde mit Alt Gr + 9 gesetzt werden. Wir sagen jetzt also, okay, hier haben wir ein String Array angelegt, das Ganze braucht noch einen Namen, das nenne ich zum Beispiel TextArray. Und wenn wir jetzt die Zeile finalisieren mit einem Semikolon, wär's das auch schon gewesen, wir hätten hier ein String Array deklariert. Speichern wir das Ganze, und kucken uns das in Unity an, hier habe ich das Skript natürlich schon mal auf ein leeres Game Objekt gezogen, und jetzt passiert nämlich folgendes, hier können wir das Text Array jetzt sehen. Und hier sehen wir auch gleich, was der nächste wichtige Parameter bei Arrays ist, nämlich die Größe des Arrays. Zur Zeit ist die noch bei null, das heißt, in unser Array, da passt noch nichts rein, unsere Einkaufsliste kann noch keine Einträge enthalten, und wir könnten hier jetzt zum Beispiel eine 5 eintragen und Enter drücken, und schon würden 5 Elemente erzeugt, Hierbei bitte beachten, dass bei null begonnen wird zu zählen, wir haben eine Gesamtlänge von 5, kommen aber nur bis zur 4, weil wir null, eins, zwei, drei, vier zählen, was ja dann wieder insgesamt 5 Einträge sind. Tragen wir doch mal in Eintrag Nummer 1 Milch ein, dann müssen wir noch Brot kaufen, und außerdem Eier. Jetzt haben wir hier noch zwei leere Einträge, das ist völlig okay. Speichern wir das Ganze auch mal hier in Unity, und kucken dann nochmal in Skript, hier hat sich natürlich nichts getan, das Ganze passiert nur intern. Wenn wir uns jetzt aber etwas aus einem Array ausgeben lassen möchten, müssen wir auf den Index des Eintrags zugreifen, und das machen wir zum Beispiel mit Debug.Log, dann greifen wir auf unser Array zu, per Name, und jetzt kommen wieder die eckigen Klammern zum Tragen. Alt Gr + 8, und sagen wir, wir möchten uns Eintrag Nummer 0 ausgeben. tragen wir also die Null ein, Alt Gr + 9, um die eckige Klammer wieder zu schließen. Die Zeile finalisieren wir mit einem Semikolon und speichern das Ganze ab. Jetzt in Unity schauen wir in unsere Konsole, und starten die Szene, hier kucken wir mal kurz auf den Eintrag Nummer 0, da steht ja Milch drin, und korrekterweise wird uns Milch ausgegeben. Soweit, so gut, wenn wir auf die 2 zugreifen müssten oder möchten, tragen wir die 2 ein, bei der 1 die 1, und so weiter und so weiter. Hier ist es also wichtig, dass wir den Index beachten, der in die eckigen Klammern kommt. Wir müssen auch beachten, dass unser Array zur Zeit nur 5 Einträge hat. Trage ich hier also zum Beispiel eine 6 ein, speichere das, und schaue in Unity, was passiert, ich starte die Szene, und bekomme natürlich einen Fehler. Und dieser Fehler wird Ihnen häufig passieren, wenn Sie mit Arrays arbeiten und irgendwie auf Einträge zugreifen möchten, die nicht mehr da sind, also zum Beispiel, greifen Sie auf Eintrag 6 zu, und der ist gar nicht vorhanden. Index out of range, also, du hast mir da einen Index gegeben, der überhaupt nicht mehr im "range" meines Arrays liegt. Und ganz gefährlich wird's, wenn wir hier jetzt eine 5 eintragen, denn man könnte schnell auf die Idee kommen, ja, mein Array hat doch 5 Einträge, die Größe, die Size meines Arrays ist doch 5, dann lasse ich mir doch mal den letzten Eintrag ausgeben, 5, ja, und was passiert in Unity natürlich? Ich kläre hier nochmal die Konsole - Es kommt trotzdem Index out of range, weil der letzte Eintrag eines Arrays mit der Größe 5 ist die 4, man kann sich das so merken, der letzte Eintrag hat immer den Index Größe minus 1, weil ja bei null angefangen wird zu zählen. Okay, wir wissen, wie wir etwas auslesen können, was ist denn, wenn wir jetzt etwas ins Array reinschreiben möchten? Hier haben wir ja noch zwei Einträge, was brauchen wir denn vielleicht noch? Wir brauchen vielleicht noch Mehl, gut, Element Nummer 3 ist noch frei, Jetzt müssen wir hier beachten, wir greifen nicht auf die 3 zu, sondern es ist der 4. Index, wir greifen auf den Index des Eintrags zu. Eintrag Nummer 0 lassen wir uns weiter mal ausgeben, und jetzt belegen wir unser Array, an Index Nummer 4 mit einem neuen Wert. Und das ist auch relativ simpel, wir greifen zunächst erstmal wieder auf unser Array zu, dann per eckige Klammer auf den Index, und das wäre ja hier 4 für den 3. Eintrag, sozusagen, und sagen dann, gleich Mehl. Und das war's auch schon, wir greifen auf unser Array zu, wohin wollen wir, welchen Eintrag wollen wir denn jetzt gerade bearbeiten, und dann den entsprechenden Wert einfach zuweisen. Genauso könnte das ja ein Array von Integern sein, also die ganzen Zahlen, oder Floats, also Kommazahlen, und dann würden wir hier genauso vorgehen, hier würden wir dann einfach eine Zahl zuweisen. Speichern wir das Ganze, und kucken es uns in Unity an, dafür starten wir die Szene, und dann sehen wir hier, Upps, Eintrag Nummer 4 wurde ja plötzlich beschrieben. Warum ist denn das gerade passiert? Wir haben Index Nummer 4 genommen, na klar, null, eins, zwei, drei, vier - hier darf man das dann bitte nicht verwechseln, wenn ich auslesen möchte, und den 4. Eintrag möchte, dann nehme ich natürlich auch den 4., hier in Visual Studio bedeutet das also, wenn wir Eintrag Nummer 4 belegen wollen, würden wir bei Eintrag Nummer 0 beginnen, das ist ja gerade - schauen wir uns nochmal gerade Unity an - Milch, dann Eintrag Nummer 1 ist Brot, und hier zählt tatsächlich, was hier bei Element steht. Nochmal zur Erinnerung: das letzte Element eines Arrays hat immer den Index, komplette Größe meines Arrays minus 1, und das wäre ja hier die 4. Man muss sich also vergegenwärtigen, ich fange einfach bei null an zu zählen, und ab da stimmen meine Indices wieder überein mit den Einträgen. Okay, wir haben jetzt in diesem Video also Arrays kennengelernt. Deklarieren tun wir sie ganz ähnlich wie Variablen, nur wir achten dabei auf das Setzen der eckigen Klammern. Dann können wir in Unity, wenn wir das Schlüsselwort Public benutzt haben, direkt eine Größe festlegen, und hierbei müssen wir bitte beachten, dass Elemente von null angefangen werden zu zählen, beziehungsweise es wird bei null begonnen, sie durchzunummerieren. Dann können wir auf Indices beziehungsweise Einträge unseres Arrays per eckige Klammer zugreifen, und sie uns zum Beispiel einfach auslesen lassen. Wir können auch neue Werte zuweisen, indem wir einfach den gewünschten Wert mit einem Gleichheitszeichen in diesen Eintrag reinpacken. Hier würden auch bereits vorhandene Einträge einfach so überschrieben werden. Arrays sind beim ersten Versuch vielleicht etwas kompliziert, weil hier die Diskrepanz zwischen kompletter Größe meines Arrays, also dem Size, und der Bezeichnung der Indices etwas schwer zu verstehen ist. Das eine zählt die komplette Größe, und das andere fängt bereits bei null an zu zählen. Wenn man das aber einmal verstanden hat, kann man damit sehr komfortabel arbeiten, und Dinge gleichen Typs komfortabel festhalten.

Skripting in Unity Grundkurs

Greifen Sie mithilfe von C#-Skripts dynamisch in Ihr Unity-Projekt ein. Auch Programmier-Neulinge lernen Schritt für Schritt den Einstieg ins Skripting.

4 Std. 50 min (40 Videos)
Derzeit sind keine Feedbacks vorhanden...
 

Anleitung für Unity 5-Nutzer:

  • Schritt 1: Projekt in Unity 5 öffnen und die Meldung bestätigen, dass das Projekt ein Upgrade bekommt.
  • Schritt 2: Wenn die Meldung kommt, dass die API upgedatet werden muss, diese auch bestätigen

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!