Skripting in Unity Grundkurs

Unitys Frame-Zyklus: Initialisierung

Testen Sie unsere 1985 Kurse

10 Tage kostenlos!

Jetzt testen Alle Abonnements anzeigen
Unitys Berechnungen basieren auf einem Zyklus pro berechnetem Bild. Dabei gibt es aber verschiedene Zeitpunkte, die genutzt werden können.
06:51

Transkript

Der Frame zu close, Frame Zyklus, oder auch Life Zyklus beschreibt ein Konstrukt, das allen Berechnungen in Unity zugrunde liegt. Dies wiederum hängt mit der Tatsache zusammen, dass diese Berechnungen pro Frame, also pro berechnetem Bild passieren. Es wird also ein Bild berechnet, dabei werden verschiedene Stationen durchlaufen. Irgendwann ist das Bild fertig gerechnet, die Grafik hat gesagt 'ok, jetzt bin ich bereit das an dem Bildschirm auszugeben', und wenn dieses Bild fertig berechnet ist, beginnt dieser Zyklus vom Neuen. In diesem Video soll es darum gehen, gewisse Dinge zu initialisieren. Das heißt es passieren Dinge noch bevor der erste Frame, das erste Bild berechnet wird. Stellen Sie sich vor, Sie haben eine ausführbare Datei, eine exe-Datei auf dem Desktop und machen einen Doppelklick darauf. Dann kommt es durchaus vor, dass der Bildschirm noch schwarz ist, wir sehen also erstmal nichts, aber im Hintergrund passieren durchaus schon Berechnungen, um eben diesen ersten Frame überhaupt darzustellen, oder um im Hintergrund gewisse Daten zu laden. In der Initialisation, also in der Initialisierung, müssen diese Dinge passieren. Hier im Handbuch von Unity gibt es speziell für diesen Zyklus ein Schaubild. Und auch hier sind die Stationen aufgeführt, die Unity uns zur Verfügung stellt, um eben diese Initialisierung vorzunehmen. Diese wären Awake, OnEnable und Start. Außerdem sind sie in genau dieser Reihenfolge aufgeführt. Das heißt zuallererst passiert Awake, also zuallererst wird eine Funktion, die zum Beispiel Awake heißt, aufgerufen, dann zum Beispiel OnEnable und dann Start. Diese 3 schauen wir uns in diesem Video etwas genauer an und gucken was damit passiert, was Initialisierung meint. Wie merken uns auf jeden Fall schon mal die Namen und gehen dann in Unity und erstellen ein neues Skript. Das tun wir, indem wir in Pojectview mit der rechten Maustaste das Kontextmenü öffnen, create wählen und in unserem Fall C sharp Skript wählen. jetzt frag uns Unity nach einem Namen für das Skript. Und wir nennen es einfach mal Init für Initialisierung. Sollte dieses Fenster bei Ihnen auftauchen, fragt Sie Visual Studio, möchten Sie nochmal die Skripts reloaden, denn es scheint, als hätte sich etwas modifiziert. Diese Warnmeldung, die wir jetzt vor uns sehen, kommt relativ häufig von Visual Studio, da Unity im Hintergrund an diesem Skript noch was verändert hat, wie Sie sehen es steht schon bereits etwas darin und deshalb fragt Visual Studio uns, ob wir das reloaden sollen, also neu laden. Hier drücken wir einfach Enter, sollte diese Fehlermeldung auftreten. Und schon können wir mit dem Skript arbeiten. Wir sehen jetzt von Unity 2 vorbereitete Funktionen, Start und Update. Um Update soll es jetzt nicht gehen, deshalb lösche ich das raus. Start ist jedoch sehr wohl von Interesse, da wird diese Funktion auch hier wieder in der Initialisierung erkennen können. Außerdem Awake und OnEnable. Genau diese beiden Funktionen werde ich hier jetzt nochmal eintragen, und zwar auch in der Reihenfolge, wie sie in dem Zyklus aufgeführt sind. Awake und onEnable. Diese 3 Funktionen mit ihren Namen, Awake, OnEnable und Start, sind feststehende Funktionen, feststehende Zeitpunkte könnte man schon fast sagen, die uns von Unity vorgegeben werden. Das sind keine Funktionen, die wir selber benennen können. Das bedeutet wir greifen immer auf bereits schon bestehende Objekte zu, und lassen zu diesen Zeitpunkten etwas geschehen. Das Verhältnis zwischen Funktion und Zeitpunkt lässt sich so erklären. Es gibt im Verlauf eines Programms gewisse Zeitpunkte mit Namen Awake OnEnable und Start zum Beispiel. Diese werden uns als Funktion in Visual Studio bzw. Unity zur Verfügung gestellt und wir nutzen sie. ich trage ja einfach mal zum Beispiel das ein, Debug.Log Awake. Dann kopiere ich diesen Befehl und füge ihn jeweils in den nachfolgenden Funktion hinzu und tausche das Awake jeweils gegen den Funktionsnamen aus. Hier natürlich Start und speichere das Ganze entweder mit einem Klick hier oben auf diese blaue Diskette, oder durch den Shortcut Steuerung + S. Jetzt zurück in Unity, sehen wir, dass wenn wir die Funktion starten, vorher aber natürlich unser Init-Skript auf irgendeinen Gameobject ziehen, damit das als Komponente hier im Inspektor erscheint, dass die Sachen, die wir hier eingetragen haben, ausgefüllt werden. Das heißt Awake, OnEnable und Start sind, quasi passiert diese Zeitpunkte wurden durchlaufen, damit wurde natürlich auch das ausgeführt, was in der jeweiligen Funktion steht. Und damit wurden diese Stationen abgearbeitet. Werfen wir abschließend nochmal einen Blick und wir sehen, dass wir uns mit der Initialisierung eigentlich außerhalb des Hauptzyklus befinden. Hier kommt zwar eine graue Linie von weiter unten an, diese ist jedoch ja grau hinterlegt. der Hauptzyklus setzt erst hier ein, nach unseren drei Initialisierungszeitpunkten. Das ist genau der Zeitpunkt, wir gehen nochmal zurück auf das Doppelklick auf die exe-Beispiel. Ich mache einen Doppelklick auf die ausführbare Datei, es laufen Berechnungen an und sind diese basiert... und wir sehen bereits was auf dem Bildschirm, sind wir im Frame-Zyklus. Alle Berechnungen davor sind hier passiert. In diesem Video haben Sie nun also den Frame-Zyklus kennengelernt, und wissen, dass es neben dem eigentlichen Zyklus noch Momente davor gibt, Die sind awake, OnEnable und Start. Und diese sind für Initialisierungen sehr wichtig. Ich möchte zum Beispiel gewisse Variablen vor dem eigentlichen Spiel festsetzen, und weil direkt zu Beginn des Spiels direkt damit gearbeitet wird, muss ich sie vorher initialisieren.

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!