Unsere Datenschutzrichtlinie wird in Kürze aktualisiert. Bitte sehen Sie sich die Vorschau an.

Skripting in Unity Grundkurs

Unitys Frame-Zyklus: Spiel-Logik

Testen Sie unsere 2015 Kurse

10 Tage kostenlos!

Jetzt testen Alle Abonnements anzeigen
Gewisse Dinge müssen bei der Berechnung aller Bilder pro Sekunde immer wieder durchlaufen werden. Wie Sie damit umgehen müssen, zeigt dieses Video.
05:25

Transkript

Neben der Initialisierung gibt es im gesamten Life-Zyklus von Unity noch einen anderen wichtigen Zeitpunkt, der Update heißt. Update gehört zu der Gruppe der Game Logic, also der Spiellogiken und um genau diese soll es in diesem Video gehen. Wir schauen uns an, was Update im Gegensatz zu der Initialisierung zum Beispiel über Awake zu tun hat und wann dieser Zeitpunkt aufgerufen wird. Awake, OnEnable und Start, also grob gesagt die Initialisierung, passieren ja noch vor unserem eigentlichen Frame-Zyklus. Es muss aber Dinge geben, die pro Frame, also zum Beispiel im Zeitraum von einer sechszehnte einer Sekunde immer und immer und immer wieder berechnet werden. Wir nehmen nochmal das Beispiel der Anwendung auf dem Desktop. Da haben wir eine Verknüpfung, wir machen einen Doppelklick. Der Bildschirm ist noch schwarz, es passieren aber schon Berechnungen. Und wenn wir dann zum Beispiel das Hauptmenü sehen, sehen wir dieses Hauptmenü permanent, auch wenn wir keine Eingabe in das Spiel geben, also keine Maustaste drücken und auch keine Tastatureingabe machen. Schauen wir uns einmal das Beispiel aus unserem Unity Projekt an. Ich gehe mit Unity in den Playmode, und es passiert erstmal nichts. Trotzdem wird alles immer und immer und immer wieder neu berechnet. Das sehen wir hier oben in den Statistiken, die wir mit Stats, mit einem Klick auf "Stats" öffnen. Und hier sehen wir, dass wir zurzeit eine Frame Rate von 60 bis 70 Frames per second haben. Also es wird in einem Zeitraum von 60 bis 70 mal pro Sekunde, das, was wir hier sehen, berechnet. Wenn ich jetzt Eingaben in dieses Spiel hineingebe, dafür muss natürlich unser Kontrollskript aktiviert sein. Es ist offensichtlich, dass Dinge neu berechnet werden. Die Position ändert sich. Es muss berechnet werden, wo der Würfel mit Kamera sich jetzt befindet und so weiter, und so weiter. Aber auch wenn der Würfel still steht, ändert sich dieser Zyklus nicht. Auch in den Skripts finden wir den Zeitpunkt Update wieder. Dafür erstelle ich ein neues Skript über das Kontextmenü und dann Create C sharp Skript. Und das neue Skript wir dürfen jetzt nicht Update nennen, denn diese Funktion gibt es ja schon, wir haben es im Life-Zyklus gesehen, den gibt es schon, sondern ich nenne es einfach mal Update Zyklus. Und wenn wir dieses Skript neu öffnen, Visual Studio gibt diese Fehlermeldung gerne, einfach mit Enter bestätigen und nochmal Enter, dann sehen wir Update gibt es schon, deshalb darf unser Skript nicht so heißen, und Unity sagt uns auch per Kommentar direkt, was es damit auf sich hat. Update ist calles once per frame. Um das Ganze jetzt noch zu verdeutlichen, werde ich einfach mal etwas in Konsole ausgeben, und zwar eine ganz normale Meldung, aber pro Frame. Das kennen wir vielleicht schon, vielleicht haben wir es in Start schon mal gesehen, da wurde es nur einmal aufgerufen. Jetzt speichere ich dieses Skript und wir werden sehen, was bei Ausführung des Skripts passiert. Dazu ziehe ich das Skript Update-Zyklus einfach auf irgendein Gameobject, damit es auch ausgeführt wird, gehe in den Playmode und schaue die Konsole an. Hier sehen wir jetzt, dass relativ viele Meldungen ausgegeben werden. Der Zähler geht hier hoch, und wenn ich auf Collapse klicke, sehen wir auch den Zähler direkt hier. Das heißt, ja, dass gleiche Meldungen nicht untereinander durchratern, sondern übereinander gestartet werden sozusagen. Und hier sehe ich, dass mittlerweile mit einer Anzahl von ungefähr 1.400 Meldungen pro Frame in die Konsole geschrieben wurden. Und das entspricht genau unsere Framerate. Unity geht jetzt her und schreibt 60 bis 70 - mal in die Konsole Meldung pro Frame, da ja Update einmal pro Bild aufgerufen wird und wie bei einer Bildrate von 60 bis 70 Bilder pro Sekunde sind. Neben dem eigentlichen Initialisierungszeitpunkt, der noch vor dem eigentlichen Zyklus passiert, kennen wir nun also den Hauptgame-Logic-Zeitpunkt-Update. Alle Gemelogiken, also alle Spiellogiken sollten irgendwann von Update aufgerufen werden. Dazu müssen sie nicht sofort in Update als Klartext stehen, sondern können sich weit verschachteln, aber Update ist die Hauptfunktion, der diese ganzen Berechnungen pro Frame in Gang setzt. Experimentieren Sie einfach mal mit der Update-Funktion herum, schauen sie, was Sie da alles reinschreiben können und Sie schnell merken, dass alles was ich in diese Klammern setze, pro Frame passiert.

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!