Theis | Einstieg in Unity | E-Book | sack.de
E-Book

E-Book, Deutsch, 484 Seiten

Reihe: Rheinwerk Computing

Theis Einstieg in Unity

2D- und 3D-Spiele entwickeln
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.
Theis Einstieg in Unity jetzt bestellen!

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«

...



Ihre Fragen, Wünsche oder Anmerkungen
Vorname*
Nachname*
Ihre E-Mail-Adresse*
Kundennr.
Ihre Nachricht*
Lediglich mit * gekennzeichnete Felder sind Pflichtfelder.
Wenn Sie die im Kontaktformular eingegebenen Daten durch Klick auf den nachfolgenden Button übersenden, erklären Sie sich damit einverstanden, dass wir Ihr Angaben für die Beantwortung Ihrer Anfrage verwenden. Selbstverständlich werden Ihre Daten vertraulich behandelt und nicht an Dritte weitergegeben. Sie können der Verwendung Ihrer Daten jederzeit widersprechen. Das Datenhandling bei Sack Fachmedien erklären wir Ihnen in unserer Datenschutzerklärung.