E-Book, Deutsch, 484 Seiten
Reihe: Rheinwerk Computing
Theis Einstieg in Unity
5. Auflage 2025
ISBN: 978-3-367-10783-4
Verlag: Rheinwerk
Format: EPUB
Kopierschutz: 0 - No protection
2D- und 3D-Spiele entwickeln
E-Book, Deutsch, 484 Seiten
Reihe: Rheinwerk Computing
ISBN: 978-3-367-10783-4
Verlag: Rheinwerk
Format: EPUB
Kopierschutz: 0 - No protection
Nutzen Sie die geniale Game Engine Unity, um eigene Spiele zu entwickeln! Erfolgsautor Thomas Theis zeigt Ihnen Schritt für Schritt, wie es geht - von der ersten Scene bis zum komplexen Multiplayer-Spiel. Mit dem integrierten C#-Kurs lernen Sie ohne Vorkenntnisse und ohne externe Software alle Objekte und Befehle direkt so kennen, wie Sie in Unity-Skripten aussehen. Unity bietet eine Fülle von Techniken und Effekten, die Sie nur einzubinden brauchen. Ob es um Zusammenstöße, Flugkurven, Explosionen oder die Kameraperspektive geht: Lernen Sie erst mit 2D- und dann mit 3D-Spielen, die mächtigen Werkzeuge zu nutzen und Ihre eigenen Ideen umzusetzen. Mit 18 vollständigen Spieleprojekten aus vielen Genres.
Aus dem Inhalt:
- Unity installieren
- Projekte, Scenes und Assets verwalten
- Flummi oder Stahlkugel? Objekteigenschaften festlegen
- Kräfte und Drehmomente nutzen
- Skripte schreiben und gut strukturieren
- Collider und Trigger einsetzen
- Sound und Animation hinzufügen
- Materialien gestalten und Texturen verwenden
- Mit Kameras und Perspektiven umgehen
- Jump 'n Run, Breakout, Multiplayer, Shooter, Geschicklichkeitsspiel, Gedächtnistraining, Rennen, Adventure u. v. m.
Autoren/Hrsg.
Weitere Infos & Material
1. Einführung ... 19 1.1 ... Was machen wir mit Unity? ... 19 1.2 ... Wie entsteht der programmierte Spielablauf? ... 20 1.3 ... Dateiendungen anzeigen lassen ... 20 1.4 ... Den Unity Hub installieren ... 21 1.5 ... Eine Unity-Lizenz erhalten ... 22 1.6 ... Eine Unity-Version installieren ... 22 1.7 ... Beispielprojekte und Assets ... 23 1.8 ... Nutzung der Materialien ... 24 1.9 ... Upgrade eines Unity-Projekts ... 25 2. Das erste 2D-Projekt ... 27 2.1 ... Ein neues Projekt erstellen ... 27 2.2 ... Wichtige Bereiche im Unity Editor ... 28 2.3 ... Das Spielobjekt »Main Camera« ... 30 2.4 ... Assets importieren ... 31 2.5 ... Spielobjekte einfügen ... 32 2.6 ... Die Hierarchie ändern ... 33 2.7 ... Eine Szene speichern ... 35 2.8 ... Die Komponente »Transform« ... 35 2.9 ... Die Ansicht in der »Scene View« ... 38 3. Spielen Sie ein 2D-Jump&Run-Spiel ... 43 3.1 ... Wie geht das Spiel? ... 43 3.2 ... Unsere ersten Unity-Elemente ... 45 4. Entwickeln Sie ein 2D-Jump&Run-Spiel ... 53 4.1 ... Erzeugen Sie das Projekt und die Assets ... 53 4.2 ... Fügen Sie Spielobjekte ein ... 54 4.3 ... Erstellen Sie den Spielablauf ... 60 4.4 ... Gestalten Sie die Benutzeroberfläche ... 82 4.5 ... Erzeugen Sie eine ausführbare Version ... 101 5. Ein 2D-Breakout-Spiel ... 105 5.1 ... Führen Sie das Spiel aus ... 105 5.2 ... Erzeugen Sie das Projekt und die Assets ... 106 5.3 ... Fügen Sie Spielobjekte ein ... 111 5.4 ... Erstellen Sie den Spielablauf ... 118 5.5 ... Gestalten Sie die Benutzeroberfläche ... 128 6. Ein 2D-Spiel für zwei Spieler ... 141 6.1 ... Führen Sie das Spiel aus ... 141 6.2 ... Bereiten Sie das Spiel vor ... 143 6.3 ... Erstellen Sie den Spielablauf ... 149 6.4 ... Künstliche Intelligenz ... 159 7. Ein Gedächtnistrainer als 2D-Projekt ... 161 7.1 ... Führen Sie das Training aus ... 161 7.2 ... Bereiten Sie das Training vor ... 162 7.3 ... Das Training für drei Zahlen ... 163 7.4 ... Das Training erweitern ... 172 8. Ein 2D-Space-Shooter ... 181 8.1 ... Bereiten Sie das Spiel vor ... 182 8.2 ... Erstellen Sie den Spielablauf ... 188 9. Das erste 3D-Projekt ... 203 9.1 ... Grundlagen eines 3D-Projekts ... 203 9.2 ... Verschieben und Drehen ... 209
10. Eine 3D-Animation ... 221 10.1 ... Schaffen Sie die Voraussetzungen ... 221 10.2 ... Erstellen Sie die Animation ... 224 10.3 ... Arbeiten Sie mit dem »Animator Controller« ... 229 10.4 ... Fügen Sie das C#-Script hinzu ... 232
11. Ein 3D-Balancer ... 235 11.1 ... Führen Sie das Spiel aus ... 235 11.2 ... Bereiten Sie das Spiel vor ... 236 11.3 ... Erstellen Sie den Spielablauf ... 240
12. Ein 3D-Tetris ... 247 12.1 ... Führen Sie das Spiel aus ... 247 12.2 ... Bereiten Sie das Spiel vor ... 248 12.3 ... Erstellen Sie den Spielablauf ... 250
13. Ein Kopfrechentrainer als 3D-Projekt ... 261 13.1 ... Führen Sie das Training aus ... 261 13.2 ... Bereiten Sie das Training vor ... 262 13.3 ... Erstellen Sie den Trainingsablauf ... 263
14. Golf spielen auf einem 3D-Terrain ... 275 14.1 ... Führen Sie das Spiel aus ... 275 14.2 ... Bereiten Sie das Spiel vor ... 276 14.3 ... Erstellen Sie den Spielablauf ... 286 14.4 ... Ein weiteres Terrain ... 292
15. Jagen auf einem 3D-Terrain ... 301 15.1 ... Führen Sie das Spiel aus ... 301 15.2 ... Bereiten Sie das Spiel vor ... 304 15.3 ... Erstellen Sie den Spielablauf ... 312
16. Eine Schlange aus 3D-Joints ... 325 16.1 ... Führen Sie das Spiel aus ... 325 16.2 ... Bereiten Sie das Spiel vor ... 326 16.3 ... Erstellen Sie den Spielablauf ... 329
17. Ein Renntraining und ein Autorennen ... 339 17.1 ... Führen Sie das Renntraining aus ... 339 17.2 ... Führen Sie das Autorennen aus ... 341 17.3 ... Bereiten Sie das Renntraining vor ... 342 17.4 ... Erstellen Sie den Ablauf des Renntrainings ... 347 17.5 ... Erweitern Sie das Renntraining zum Autorennen ... 358
18. Erkunden Sie das Verlies ... 369 18.1 ... Führen Sie das Spiel aus ... 369 18.2 ... Bereiten Sie das Spiel vor ... 373 18.3 ... Erstellen Sie den Spielablauf ... 382
19. Ein Programmierkurs in C# ... 401 19.1 ... Das Unity-Projekt »Programmierkurs« ... 401 19.2 ... Grundlagen ... 403 19.3 ... Datenfelder ... 416 19.4 ... Zeichenketten ... 419 19.5 ... Methoden ... 421 19.6 ... Generische Listen ... 427 19.7 ... Daten auf der Festplatte ... 430 19.8 ... Objektorientierung ... 433
20. Speichern Sie eine Highscore-Liste ... 439 20.1 ... Definition der eigenen Klasse ... 439 20.2 ... Die eigene Klasse nutzen ... 442
21. Arbeiten Sie mit mehreren Szenen ... 451 21.1 ... Der Ablauf des Projekts ... 451 21.2 ... Der Aufbau der ersten Szene ... 452 21.3 ... Weitere Szenen ... 456
22. Allgemeine Hinweise ... 459 22.1 ... Projekte bearbeiten ... 459 22.2 ... Unity Packages ... 461 22.3 ... Unity unter anderen Betriebssystemen ... 463 22.4 ... Browser-Anwendungen erstellen ... 464 22.5 ... Android-Apps erstellen ... 466 22.6 ... Bonusprojekte ... 471 Index ... 475
3.2 Unsere ersten Unity-Elemente
Betrachten wir die einzelnen Elemente des fertigen Spiels im Unity Editor. Dabei machen wir uns bereits mit einigen Begriffen vertraut, die wir später zur Entwicklung benötigen.
Starten Sie dazu den Unity Hub, wechseln Sie auf die Seite Projects, und wählen Sie den Eintrag Add project from disk in der Liste Add aus. Daraufhin erscheint ein Dialogfeld, in dem Sie das Projektverzeichnis TomsJumpAndRun auswählen. Betätigen Sie die Schaltfläche Add project. Das Projekt erscheint in der Liste der Projekte.
Öffnen Sie das Projekt, wie es in Abschnitt 1.9 beschrieben wird. Wählen Sie also zunächst die gewünschte Unity-Version aus und klicken Sie anschließend auf die gesamte Zeile mit dem Projekt.
Nun öffnet sich der Unity Editor mit dem ausgewählten Projekt. Die Scene View zeigt das Spielfeld inklusive seines weißen Rahmens. Sollte das Spielfeld nicht vollständig zu sehen sein, sollten Sie das Layout des Unity Editors und die Ansicht in der Scene View durch Größenänderung und Verschiebung noch anpassen (siehe Abschnitt 2.9).
3.2.1 Assets
Schauen wir uns zunächst die Assets für das Projekt an. Sie sind zur besseren Übersicht in Verzeichnissen gruppiert.
Nachdem wir in der Project View das Hauptverzeichnis Assets markiert haben, sehen wir die Unterverzeichnisse Scenes, Scripts, Settings, Sprites und TextMesh Pro (siehe Abbildung 3.2).
Abbildung 3.2 Assets, Hauptverzeichnis
Wenn wir das Unterverzeichnis Scenes in der Project View markieren, sehen wir wie im ersten Projekt die einzige Szene des Spiels mit dem Namen SampleScene.
Nach dem Markieren des Unterverzeichnisses Scripts sehen wir zwei Assets vom Typ C#-Script. Sie erkennen sie an den Symbolen # für die Script-Dateien Gefahren.cs und Spieler.cs (siehe Abbildung 3.3). Über die Symbole können wir die Programme erreichen, die in der Programmiersprache C# geschrieben sind:
-
In der Script-Datei Spieler.cs findet sich die Klasse Spieler, in der die Eigenschaften und das Verhalten des Affen festgelegt werden. Außerdem werden von hier aus die meisten Abläufe gesteuert, da es sich bei dem Affen um das wichtigste Objekt des Spiels handelt. Das umfasst z. B. den Start und das Ende des Spiels, die Zeitmessung, das Erfassen von Punkten und Leben, die verschiedenen Anzeigen und einiges mehr.
-
In der Klasse Gefahren in der Script-Datei Gefahren.cs werden die gleichartigen Eigenschaften für alle sechs Tiger festgelegt.
Abbildung 3.3 Script-Assets
Nach dem Markieren des Unterverzeichnisses Sprites sehen wir einige Assets vom Typ Sprite. Sie erkennen sie an den Symbolen für die fünf Bilddateien Affe.png, Banane.png, Dschungel.png, Tiger.png und Weiss.png (siehe Abbildung 3.4).
Abbildung 3.4 Sprite-Assets
Die Assets werden für die verschiedenen Spielobjekte verwendet: Dschungel für den Hintergrund, Weiss für die Begrenzung und die Plattformen sowie Affe, Banane und Tiger für die Aktionen im Spiel.
3.2.2 Spielobjekte
Wir untersuchen die verschiedenen Spielobjekte in der Hierarchy View (siehe Abbildung 3.5). Dabei markieren wir die angesprochenen Elemente der Reihe nach, damit wir sie jeweils anhand ihrer Markierung in der Scene View identifizieren können und die wichtigsten Eigenschaften und ihre Werte in der Inspector View betrachten können.
Abbildung 3.5 Spielobjekte in der »Hierarchy View«
Das Spielobjekt Main Camera in der Mitte des Spielfelds haben Sie bereits in Abschnitt 2.3 kennengelernt. Das Spielobjekt Global Light 2D hat den Lichttyp (Eigenschaft Light Type) Global für eine gleichmäßige Ausleuchtung und die Lichtfarbe (Eigenschaft Color) Weiss. Das Spielobjekt Hintergrund wird mithilfe des Sprite-Assets Dschungel erstellt.
Das Spielobjekt Spieler basiert auf dem Sprite-Asset Affe und hat mehrere wichtige Komponenten (siehe Abbildung 3.6):
-
In der Transform-Komponente sehen Sie die Position und die Größe.
-
Die Komponente Rigidbody 2D sorgt dafür, dass sich der Affe so ähnlich wie ein Objekt in der realen Welt verhält, das den Gesetzen der Physik unterliegt. Das bewirkt im vorliegenden Fall, dass die Schwerkraft den Affen nach unten zieht und Kollisionen mit anderen Spielobjekten bemerkt werden können.
-
Die Komponente Box Collider 2D bestimmt die Form des Kollisionsobjekts. Oft handelt es sich dabei um ein Rechteck, das die Grafik eng umgibt. Zudem sorgt dieser Collider dafür, dass der Affe keine der Begrenzungen oder Plattformen durchdringen kann. Er fällt also z. B. nicht einfach aufgrund der Schwerkraft durch den Boden.
-
In der Komponente Spieler (Script) ist dem Spielobjekt das Script-Asset Spieler zugeordnet. Damit wird festgelegt, dass sich der Affe so verhält, wie es in dem C#-Script in der Datei Spieler.cs vorgegeben wird.
Ein Box Collider 2D ist rechteckig, daher ist er für alle Spielobjekte in diesem Projekt geeignet.
Das Spielobjekt Gewinn basiert auf dem Sprite-Asset Banane. In Abbildung 3.7 erkennen Sie die Größe. Außerdem sehen Sie die erste Position der Bananen nach dem Start des Spiels. Eine Kollision mit dem Affen muss bemerkt werden, damit es Punkte gibt. Daher hat auch dieses Spielobjekt eine Komponente Box Collider 2D. Ganz unten sehen Sie die Schaltfläche Add Component, mit der Sie Komponenten zu einem Spielobjekt hinzufügen können.
Abbildung 3.6 Das Spielobjekt »Spieler« und seine Komponenten
Abbildung 3.7 Das Spielobjekt »Gewinn« und seine Komponenten
Oben links in Abbildung 3.7 sehen Sie, dass das Spielobjekt das Tag Gewinn besitzt. Ein Tag (engl. für Etikett, Schildchen) ist eine Marke, die Sie einem Spielobjekt zuordnen können. Mehrere Spielobjekte können dasselbe Tag haben. So können Sie Spielobjekte zu logischen Gruppen zusammenfassen und mithilfe von C#-Code auf diese Spielobjekte gemeinsam zugreifen.
Das Spielobjekt Raum in Abbildung 3.8 dient lediglich als Verzeichnis für die untergeordneten Spielobjekte (siehe auch Abschnitt 2.6). Diese bilden die Begrenzung des Spielfelds und die Plattformen. Alle basieren auf dem Sprite-Asset Weiss. Markieren Sie einmal nacheinander die weißen Spielobjekte in der Hierarchy View, um ihre Lage in der Scene View und ihre Komponenten in der Inspector View zu betrachten. Ich empfehle Ihnen, in Ihren Projekten ähnlich selbsterklärende Namen zu verwenden.
Abbildung 3.8 Begrenzung des Spielfelds und Plattformen
Alle weißen Spielobjekte besitzen einen Box Collider 2D. Auf diese Weise wird z. B. verhindert, dass der Affe aufgrund der Schwerkraft durch den Boden oder eine der Plattformen fallen kann. So kann er auch das Spielfeld nicht durch eine der Wände verlassen.
Das Spielobjekt Gefahren in Abbildung 3.9 dient als Verzeichnis für die insgesamt sechs einzelnen Gefahren, also die sechs Tiger. Alle basieren auf dem Sprite-Asset Tiger. In der Inspector View sehen Sie, dass alle das Tag Gefahr besitzen. Wie das Spielobjekt Gewinn besitzen auch diese Spielobjekte einen Box Collider 2D, damit eine Kollision mit dem Affen bemerkt werden kann.
Abbildung 3.9 Das Spielobjekt »Gefahren«
...