
Dieses Video zeigt die Softwareinstallation von Unity und Visual Studio über Unity Hub.
In diesem Video lernst Du die Dateistruktur eines Unity-Projekts kennen. Ich zeige welches Organisationsprinzip sich in der Praxis bewährt hat, um fremde und eigene Inhalte auseinanderzuhalten.
Wir sehen uns Installation und Funktionsweise eines (optionalen) Plugins an, das hilft, den Überblick über alle Dateien in komplexen Projekten zu behalten.
Dieses Video gibt einen Überblick über die Themen des Programmier-Crashkurses und worum es beim Programmieren im Grunde immer geht.
Wir sehen uns hier an, wie Werte in Variablen gespeichert werden können, welche strukturellen Bestandteile diese Speicherzellen haben und was die wichtigsten Daten-Typen sind, die wir in Unity brauchen.
Dieses Video beschreibt die Strukturierung von Befehlsfolgen in Form von Funktionen. Zudem schauen wir uns Operatoren als Sonderfall von Funktionen an.
Code besteht aus einer Folge einzelner Anweisungen, die sich jedoch durch Klammerung gruppieren lassen.
In diesem Video sehen wir uns u.a. an, was Objektorientierung bedeutet und welchen Nutzen es bringt. Zudem sehen wir uns Vererbung und Namensräume an.
Variablen werden nach Wert- und Verweistypen unterschieden. Dieses Video erklärt die jeweiligen Eigenschaften.
In diesem Video schauen wir uns den Build-Vorgang und die dafür relevanten Begriffe Quelltexte, Assets, Maschinencode und Distribution an.
Abschluss des Kapitels.
In diesem Video sehen wir uns einige Beispiele von Webseiten an, auf denen Du kostenlose und kostenpflichtige Modelle findest. Außerdem lernst Du, worauf Du bei der Nutzung externer Modelle achten solltest.
Wir importieren hier die Assets für diesen Kurs und erzeugen die Szene mit der Spielfigur.
In diesem Video sehen wir uns die Idee hinter Unity's Eingabeachsen an, die es ermöglichen, Spieler-Eingaben hardware-unabhängig umzusetzen. Du lernst den konzeptuellen Ansatz sowie die technischen Eigenschaften und Vorteile dieses Systems kennen.
Eigenschaften lassen sich im Inspector über public oder SerializeField sichtbar machen. Dieses Video beschäftigt sich mit den Unterschieden und zeigt den Grund, warum public unter konzeptuellen Gesichtspunkten die bessere Wahl ist.
Wir richten jetzt Unitys Physiksimulation ein, so dass wir das Springen unserer Figur durch Anwendung eines physikalischem Kraftimpuls umsetzen können. Dabei sehen wir uns auch das Ändern der Gravitationsstärke an und erweitern den Code so, dass wir den Bodenkontakt der Figur mittels Raycasting-Verfahren überwachen.
Um leichter nachvollziehen zu können, wie die Bodenkontakt-Prüfung per Raycast-Berechnung funktioniert, fügen wir eine Hilfslinie ein, die den Scanbereich im Editor grafisch darstellt.
In diesem Video ergänzen wir die Figur um eine Animationskomponente, die dafür sorgt, dass sich während des Laufens die Beine bewegen. Durch Einsatz von geskripteten Animationsparametern, Zustandsgraphen und -übergängen, sowie BlendTrees, bauen wir außerdem eine Warte-Animation und eine Sprung-Animation ein.
In Unity ab 2019 muss die Cinemachine über den Package Manager installiert werden.
In diesem Video sehen wir uns Unitys kostenloses Kamera-Plugin 'Cinemachine' an. Du lernst wie Du das Skript einsetzt, um eine Kamera zu realisieren, die der Spielfigur in mit sanft gleitender Bewegung folgt.
In diesem Video fügen wir der Szene Trigger hinzu, die das automatische Speichern des Spielstands auslösen werden. Wir besprechen dazu die Trigger-Optionen von Unitys Kollisions-Komponenten und was es dabei zu beachten gibt.
Nicht ausgewählte Trigger sind unsichtbar. In diesem Video lernst Du, wie Du dieses Problem beheben kannst, in dem Dein Code eigene Gizmos zeichnet.
Wir erweitern das Projekt in diesem Video so, dass der letzte Speicherstand automatisch beim Starten des Spiels geladen wird. Dazu fügen wir eine Laden-Funktion hinzu, die im Grunde die Umkehrung des Speichervorgangs ist.
Während des Playmodes vorgenommene Änderungen werden bei Rückkehr zur Bearbeitung verworfen. Zur Vermeidung von versehentlichen Änderungen im falschen Modus bietet Unity einen Trick an, den Du hier kennen lernst.
In einem realen Game würde man nicht nur die in jeder Szene vorhandene Spielfigur speichern, sondern auch verschiedene Szenenobjekte. Um zu sehen, wie dies geht, legen wir zunächst eine Wand mit Tür an und animieren diese.
Da die Tür interaktiv sein soll, fügen wir nun eine Schaltkonsole in die Szene ein und öffnen die Tür, wenn die Spielfigur vor der Konsole steht und der Spieler eine Taste drückt.
Abschließend verbessern wir das Laden des Szenenszenobjekts, in dem wir Ereignisablauf im Animator anpassen.
Damit der Savegame-Trigger beim Laden nicht sofort wieder speichert, deaktivieren wir den zuletzt ausgelösten Speicherpunkt mit einer eindeutigen ID. Zudem ändern wir den Code so, dass die Savegame-Instanz in Zukunft wiederverwendet wird.
Wir ergänzen das Spiel um eine zweite Szene und wandeln die Spielfigur in ein vorgefertigtes Modell (Prefab) um, dessen Änderungen sich automatisch auf alle Szenen übertragen.
In diesem Video erweitern wir das Script so, dass wir die aktuelle Szene im Savegame speichern und wiederherstellen.
Eine Verbesserung des Codes besteht darin, den sich wiederholenden Code in einer gemeinsamen Klasse auszulagern und diese bei Bedarf durch Vererbung einzubinden.
Auch der Code zum Zeichnen der unsichtbaren Objekte im Editor lässt sich zentralisieren. Statt zu vererben legen wir hierfür allerdings schlicht eine Hilfsmittelklasse zu Sammlung allgemeiner Codebausteine an.
Hier findest Du eine Kopie der C#-Scripte, wie sie in den Videos bis hier geschrieben wurden. Du kannst so Deinen Code mit dem Kurs-Code vergleichen, falls irgendwo Probleme entstanden sind.
Mittels UI-System realisieren wir in diesem Video ein Spiel-Menü, bei dem die Spielszene abgedunkelt wird. Wir importieren eine externe Schriftart, mit der wir dann den Text im Menü gestalten.
Das Menü wird nun um auswählbare Optionen erweitert. Dazu sehen wir uns vor allem die allgemeine Funktionsweise von UI-Buttons an.
In diesem Video lernst Du, wie Du eine zusätzliche Eingabeachse definierst und diese im Code so auswertest, dass das Menü zuverlässig mit verschiedenen Eingabegeräten (Tastatur, Gamepad) ein- und ausgeblendet werden kann.
In diesem Video lernst Du, wie Du eine Pause-Funktion in das Spiel einbaust. Außerdem optimieren wir den Code durch Reduzierung kostspieliger Suchabfragen und den Einsatz des Ternary Operators.
Wir lösen in diesem Video ein Problem das bei gleichzeitigem Tastendruck auftritt.
Hier lernst Du, welche Einstellungen Du nutzen kannst, damit das Menü seine Größenverhältnisse an unterschiedliche Bildschirmauflösungen anpasst.
In diesem Video lernst Du die Funktionsweise von Ragdolls kennen und wie Du eine solche Gliederpuppe in Unity herstellen kannst.
Wir erweitern in diesem Video unseren Code so, dass sich die Ragdoll bequem ein- und ausgeschalten lässt.
In dieser Lektion fügen wir eine Gefahrenquelle in Form eines rollenden Fasses hinzu. Im Rahmen der nötigen Anpassungen sehen wir uns unter anderem auch optionale Parameter in C# an.
Die hier gezeigten Änderungen von nichtmal fünf Zeilen Code bewirken, dass die Figur nun korrekt auf Steigungen stehen bleibt und durch die Schwerkraft nach unten rutscht.
Wir erweitern unser Playerscript nun so, dass die Figur bei Gefahrenkontakt nicht sofort stirbt, sondern stückweise an Gesundheit verliert.
Die Szene wird nun um einen HUDs-Canvas erweitert, der die aktuelle Spieler-Gesundheit in einem Fortschrittsbalken anzeigt.
Wir optimieren unsere Scripte so, dass Savepoints nur sichern, wenn die Spielfigur noch genügend Lebenskraft hat. Schließlich speichern und laden wir die Spielergesundheit im Savegame und sehen uns dabei die Wertdeckelung per Clamp-Befehl an.
In diesem Video lernst Du, wie Du eine Kugel erstellst, die die Gesundheit des Spielers beim Einsammeln verbessert.
In diesem Video lernst Du, wie Du komplexe Datenstrukturen zur Speicherung von Objekteigenschaften aufbauen und im Savegame nutzen kannst. Dazu setzen wir innere Klassen und typisierte Listen, sowie eine selbst definierte Suchfunktion ein.
In diesem Video lernst Du, wie Du eine Armhaltung für das Halten einer Waffe so einbaust, dass sie mit den bisherigen Animationen gemischt wird.
Wir fügen in diesem Video eine Waffe hinzu, die die Spielfigur in der Hand hält.
In diesem Video legen wir ein Zielobjekt an und erweitern das Pistolen-Prefab um eine Pistolenkugel.
Per Script sorgen wir in diesem Video dafür, dass Pistolenkugeln in die Szene geschossen werden können.
Da wir nun nicht mehr nur Bones in der Objekthierarchie der Spielfigur haben, sondern z.B. auch die Pistole und ihre Kugel, müssen wir den Ragdoll-Code, der gewisse Komponenten pauschal ausschaltet so ändern, dass er nur noch die Bones-Objekte beeinflusst.
In diesem Video vereinheitlichen wird das Verhalten für eindeutig identifizierbare (ID) und zerstörbare Objekte, deren Deaktivierung über das Savegame gesichert und wiederhergestellt wird. Außerdem ergänzen wir die Serialisierung der getragenen Munition.
Wir korrigieren in diesem Video die Sortierreihenfolge der 2D-Ebenen und führen ein C#-Property ein, um sicherzustellen, dass sich der Gesundheitswert der Spielfigur stets in einem gültigen Bereich befindet.
Hier findest Du eine Kopie der C#-Scripte, wie sie in den Videos bis hier geschrieben wurden. Du kannst so Deinen Code mit dem Kurs-Code vergleichen, falls irgendwo Probleme entstanden sind.
Mittels eines Partikel-Prefabs sorgen wir für einen eindrucksvollen visuellen Effekt beim Abschießen des Roboters.
In diesem Video erfährst Du, wie Sound-Dateien in Unity behandelt werden, welche Sound-Formate sich importieren lassen und wo Du Musik und Sounds für Deine Games findest.
In diesem Video lernst Du die drei Grundkomponenten kennen, mithilfe derer Unity Sounds abspielt. Wir erweitern die Explosion der Kugel um einen einfachen Explosionssound und besprechen kurz die Option räumlicher Geräuschquellen.
Wenn Prefabs verschachtelt werden, geht die Vorlagen-Funktion unter Umständen leicht verloren. Wir fügen in diesem Video ein Helfer-Script hinzu, um diesen Effekt automatisch zu beheben.
In diesem Video erfährst Du, wie Du eine kostenlose Audio-Bearbeitungssoftware installierst.
In diesem Video lernst Du, wie Du einen sich nicht wiederholenden Soundclip zu einem Loop umschneidest und ihn dann als Hintergrundsound in die Spielszene einbaust.
Stetig aktualisiert! Gerade neu: über 2 Stunden ergänzendes Video-Material zum Thema ScriptableObject und Inventar.
Lerne 3D-Spiele mit C# in Unity zu entwickeln, DEM weltweiten Industrie-Standard für Videospiel-Produktion.
In diesem Kurs lernst Du nicht nur die Grundkonzepte von C# sowie die wichtigsten Module von Unity kennen, sondern auch, wie Du diese einsetzt, um reale Spieleanforderungen umzusetzen. Wir bauen hier ein kleines Jump'n'Run-Spiel, doch das ist nur ein Anwendungsbeispiel - die Lektionen dieses Kurses sind so konstruiert, dass sich das Wissen auf sehr viele Spielekonzepte übertragen lässt. Am Ende zeige ich Dir sogar, wie Du mit wenigen Handgriffen den Spielstil komplett ändern und typische andere Spielelemente mit den gleichen Methoden umsetzen kannst.
Der Kurs zielt darauf ab, die Funktionsweise von Unity so zu erklären, dass sie sogar ohne große Vorkenntnisse zu verstehen sind. Er ist perfekt dafür geeignet, sich in wenigen Stunden das nötige Wissen anzueignen, um selbst eigene Spiele zu entwickeln. Wenn Du kompletter Anfänger bist, als Gestalter Interaktion selbst umsetzen möchtest oder Du Dich für die Grundlagen der Spieleentwicklung aus Programmierersicht interessierst, bist Du hier genau richtig!
DAS WIRST DU LERNEN:
UND AUßERDEM LERNST DU DIESE ESSENTIELLEN C#-KONZEPTE KENNEN:
DAS SETZEN WIR IN DIESEM KURS KONKRET UM:
ES WIRD NOCH BESSER:
Los geht's - starte jetzt mit der Programmierung Deiner Spiele!