33
Leseprobe Der Weg zum eigenen Computerspiel beginnt hier! Diese Lese- probe führt Sie durch den Unity-Editor und hilft Ihnen bei den ersten Schritten hin zu einem einfachen 2D-Spiel. Sie erfahren, wie Sie die Kamera und die Spielobjekte steuern, Assets impor- tieren und sogar ein 3D-Spiel programmieren. Thomas Theis Einstieg in Unity – Ideal für Programmieranfänger 448 Seiten, broschiert, in Farbe, Februar 2017 29,90 Euro, ISBN 978-3-8362-4292-9 www.rheinwerk-verlag.de/4211 »Das erste 2D-Projekt« »Spielen Sie ein 2D-Jump&Run!« »Ein neues Projekt: Der 3D-Balancer« Inhaltsverzeichnis Index Der Autor Leseprobe weiterempfehlen Wissen, wie’s geht.

Einstieg in Unity – Ideal für Programmieranfänger · PDF fileprobe führt Sie durch den Unity-Editor und hilft Ihnen bei den ersten Schritten hin zu einem einfachen 2D-Spiel. Sie

  • Upload
    donhu

  • View
    246

  • Download
    2

Embed Size (px)

Citation preview

Page 1: Einstieg in Unity – Ideal für Programmieranfänger · PDF fileprobe führt Sie durch den Unity-Editor und hilft Ihnen bei den ersten Schritten hin zu einem einfachen 2D-Spiel. Sie

LeseprobeDer Weg zum eigenen Computerspiel beginnt hier! Diese Lese- probe führt Sie durch den Unity-Editor und hilft Ihnen bei den ersten Schritten hin zu einem einfachen 2D-Spiel. Sie erfahren, wie Sie die Kamera und die Spielobjekte steuern, Assets impor-tieren und sogar ein 3D-Spiel programmieren.

Thomas Theis

Einstieg in Unity – Ideal für Programmieranfänger448 Seiten, broschiert, in Farbe, Februar 2017 29,90 Euro, ISBN 978-3-8362-4292-9

www.rheinwerk-verlag.de/4211

»Das erste 2D-Projekt« »Spielen Sie ein 2D-Jump&Run!« »Ein neues Projekt: Der 3D-Balancer«

Inhaltsverzeichnis

Index

Der Autor

Leseprobe weiterempfehlen

Wissen, wie’s geht.

Page 2: Einstieg in Unity – Ideal für Programmieranfänger · PDF fileprobe führt Sie durch den Unity-Editor und hilft Ihnen bei den ersten Schritten hin zu einem einfachen 2D-Spiel. Sie

24

1 Das erste 2D-Projekt

Kapitel 1

Das erste 2D-Projekt

In diesem Abschnitt lernen wir den Unity Editor als unsere Benutzer-

oberfläche zur Erstellung von Projekten kennen. Wir legen dazu ein erstes

2D-Projekt mit dem Namen ZweiDimensionen an, das einige einfache Ele-

mente beinhaltet.

1.1 Erstellung eines neuen Projekts

New Starten Sie Unity. Es erscheint das Dialogfeld zur Auswahl beziehungsweise

Erstellung eines Projekts. Betätigen Sie den Link New zur Erstellung eines

neuen Projekts. Im oberen Eingabefeld geben wir den Namen des Projekts

ein. Hier ist das »ZweiDimensionen«, siehe Abbildung 1.1.

Das Verzeichnis UnityProjekte für die Projektverzeichnisse haben wir be-

reits in der Einführung im Abschnitt »Projektverzeichnis und Vorlagen«

unterhalb des Windows-Verzeichnisses Dokumente angelegt. Die englische

Windows-Bezeichnung für dieses Verzeichnis lautet C:\Users\[Benutzer-

name]\Documents\UnityProjekte. Es sollte zur Erstellung ausgewählt sein,

siehe Abbildung 1.1.

Create project Es wird die Option 2D markiert, damit passende Voreinstellungen für 2D-

Projekte getroffen werden. Nach Betätigung der Schaltfläche Create Pro-

ject wird das Projekt erzeugt und im Unity Editor angezeigt.

Abbildung 1.1 Erstellung des ersten 2D-Projekts

1.2 Wichtige Bereiche im Unity Editor

25

1.2 Wichtige Bereiche im Unity Editor

Entwicklungs-

umgebung

Der Unity Editor stellt die Umgebung dar, in der wir unsere Unity-Projek-

te entwickeln. Wir arbeiten mit der englischsprachigen Version von Unity.

Ich verwende daher die englischen Begriffe für die Elemente des Pro-

gramms, wie sie auch vor Ihnen auf dem Bildschirm erscheinen.

Neben der Menüleiste am oberen Rand gibt es noch andere wichtige Berei-

che im Unity Editor, die sogenannten Views, siehe Abbildung 1.2. Für je-

den Bereich gibt es einen Reiter, auf dem die Bezeichnung der View steht:

Project View� Am unteren Rand finden Sie die Project View. Sie beinhaltet die soge-

nannten Assets. Assets sind Elemente, die uns für ein Unity-Projekt

grundsätzlich zur Verfügung stehen. Wir können einzelne oder auch alle

Assets als Spielobjekte oder Teile von Spielobjekten verwenden. Ein As-

set kann mehrfach in einem Spiel eingesetzt werden oder eventuell zu-

nächst auch gar nicht.

Console View� Ebenfalls am unteren Rand gibt es die Console View. Sie steht zunächst

hinter der Project View und kann durch einen Klick auf ihren Reiter

nach vorne gebracht werden. Hier sehen Sie Kontrollausgaben oder

auch Fehlermeldungen Ihrer Programme.

Hierarchy View � Am linken Rand gibt es die Hierarchy View. Sie dient als ein hierarchi-

sches Verzeichnis derjenigen Spielobjekte, die tatsächlich im Projekt

agieren. Spielobjekte können aus den Assets stammen, aber auch auf

andere Weise erzeugt werden.

Scene View� In der Mitte finden Sie die Scene View. Hier positionieren Sie während

der Entwicklung diejenigen Spielobjekte, die tatsächlich im Projekt agie-

ren, auf dem Spielfeld.

Game View� Ebenfalls in der Mitte gibt es die Game View. Sie steht zunächst hinter

der Scene View und kann durch einen Klick auf ihren Reiter nach vorne

gebracht werden. Hier sehen Sie eine Vorschau auf das Spielfeld, wie es

während des Spiels aussieht.

Inspector View� Am rechten Rand sehen Sie die Inspector View. Sie beinhaltet die Kom-

ponenten desjenigen Spielobjekts, das Sie aktuell in der Hierarchy

View oder in der Scene View ausgewählt haben. In den Komponenten

finden Sie die einzelnen Eigenschaften der Spielobjekte und deren aktu-

elle Werte. Sie können diese Werte betrachten und verändern.

Page 3: Einstieg in Unity – Ideal für Programmieranfänger · PDF fileprobe führt Sie durch den Unity-Editor und hilft Ihnen bei den ersten Schritten hin zu einem einfachen 2D-Spiel. Sie

1 Das erste 2D-Projekt

26

Abbildung 1.2 Der Unity Editor

Reiter Alle Bereiche können in ihrer Größe verändert werden, indem sie am Rand

mithilfe der Maus angefasst werden. An ihrem Reiter können Sie ebenfalls

mithilfe der Maus angefasst und an andere Stellen des Bildschirms ver-

schoben werden. Sie können Bereiche ganz ausblenden oder weitere Berei-

che einblenden.

Layouts Die Veränderungen über den Reiter sollten zunächst mit Vorsicht durchge-

führt werden. Ganz oben rechts gibt es eine Liste von möglichen Layouts.

Jedes Layout bietet typische Werte für die Anordnung und die Größe der

Bereiche, siehe Abbildung 1.3. Über den Eintrag Default können Sie die

Grundeinstellung wieder aufrufen.

Abbildung 1.3 Liste der Layouts

1.4 Assets importieren

27

1.3 Das Spielobjekt »Main Camera«

Sicht des BenutzersJedes 2D-Projekt umfasst standardmäßig bereits ein Spielobjekt, das in der

Hierarchy View erscheint. Es hat den Namen Main Camera und stellt die

Kamera dar, mit deren Hilfe der Benutzer auf das Spielfeld sieht. Es er-

scheint in der Mitte der Scene View in Form eines Kamerasymbols.

EigenschaftenFalls Sie wie in Abbildung 1.2 das Spielobjekt Main Camera in der Hierarchy

View markiert haben, sehen Sie rechts unten in der Scene View das kleine

Fenster Camera Preview, das eine Vorausschau auf das spätere Spielfeld

ermöglicht. Gleichzeitig sehen Sie in der Inspector View die Eigenschaf-

ten und Werte für das Spielobjekt Main Camera. Auf einige dieser Werte gehe

ich später noch ein.

1.4 Assets importieren

Auf Basis eines neuen Assets sollen zwei Spielobjekte eingefügt werden.

Gemeinsam mit den Beispielprojekten haben Sie in der Einführung im Ab-

schnitt »Projektverzeichnis und Vorlagen« das Verzeichnis FreieAssets he-

runtergeladen. Darin befindet sich einige einfache Bilddateien, die als As-

sets importiert werden können. Eine davon benötigen wir.

Freies AssetRufen Sie den Menüpunkt Assets • Import New Asset auf. Wählen Sie die

Bilddatei Rakete.png aus dem Verzeichnis FreieAssets aus, und betätigen

Sie die Schaltfläche Import. Nach dem Import erscheint Ihr erstes Asset

mit dem Namen Rakete in der Project View im Bereich Assets. Es handelt

sich um ein Asset vom Typ Sprite. Sprites sind einfache zweidimensionale

Grafikobjekte. Falls Sie es in der Project View markieren, wird unten der

Dateiname angezeigt, siehe Abbildung 1.4.

Abbildung 1.4 Asset aus Bilddatei

Page 4: Einstieg in Unity – Ideal für Programmieranfänger · PDF fileprobe führt Sie durch den Unity-Editor und hilft Ihnen bei den ersten Schritten hin zu einem einfachen 2D-Spiel. Sie

1 Das erste 2D-Projekt

28

1.5 Spielobjekte einfügen

Ziehen Sie das Asset zweimal nacheinander mithilfe der Maus in die Hier-

archy View. Achten Sie dabei darauf, das Asset nicht genau auf einem

bereits vorhandenen Spielobjekt in der Hierarchy View loszulassen, son-

dern in dem freien Bereich unterhalb der bisher vorhandenen Spielobjekte.

Erste Spielobjekte Damit haben Sie zusätzlich zum Spielobjekt Main Camera zwei weitere Spiel-

objekte in das Projekt eingefügt. Diese tragen zunächst die Namen Rakete

und Rakete (1) und entstammen demselben Asset.

Umbenennen Markieren Sie das erste neue Spielobjekt Rakete in der Hierarchy View.

Nun können Sie seine Eigenschaften betrachten oder ändern. Wenn Sie es

noch einmal anklicken, so können Sie seinen Namen ändern, zum Beispiel

auf RaketeEins.

Sprites/Default In der Inspector View sehen Sie in der Komponente Sprite Renderer die

Eigenschaft Material. Ihr Wert sollte, siehe Abbildung 1.5, auf Sprites/De-

fault stehen, damit die Bilddatei unverfälscht dargestellt wird. Falls das

einmal nicht der Fall sein sollte, klicken Sie auf den Kreis rechts neben der

Eigenschaft Material. Es öffnet sich das Dialogfeld Select Material.

Wählen Sie darin den Eintrag Sprites/Default aus.

Führen Sie die beiden Aktionen auch für das zweite neue Spielobjekt Rakete

(1) aus. Es soll RaketeZwei heißen, siehe Abbildung 1.6. Beide Raketen liegen

in der Scene View noch genau hintereinander. Das wird in Kürze geändert.

Abbildung 1.5 Komponente »Sprite

Renderer«, Eigenschaft »Material«

Abbildung 1.6 Zwei neue Spielobjekte

1.6 Ändern der Hierarchie

29

1.6 Ändern der Hierarchie

In diesem Abschnitt zeige ich Ihnen einige typische Änderungen in der Hi-

erarchy View, die erfahrungsgemäß auch schnell zu Fehlern führen kön-

nen. Führen Sie die Änderungen auch selber einmal durch. Solange mögli-

che Fehler in diesem kleinen Übungsprojekt auftreten, sind die

Auswirkungen noch überschaubar.

Reihenfolge

der Spielobjekte

Aus Gründen der Übersichtlichkeit ist die Reihenfolge der Spielobjekte in

der Hierarchy View wichtig. Nehmen wir an, Sie möchten das Spielobjekt

RaketeZwei vor dem Spielobjekt RaketeEins anordnen. Dazu betätigen Sie

auf dem Spielobjekt RaketeZwei die linke Maustaste, halten sie gedrückt

und ziehen das Spielobjekt nach oben, bis der Mauszeiger als eine dünne

blaue Linie zwischen den Spielobjekten Main Camera und RaketeEins er-

scheint. In diesem Moment können Sie die Maustaste loslassen.

RückgängigDie Spielobjekte haben nun die gewünschte Reihenfolge. Mit dem Menü-

befehl Edit / Undo … beziehungsweise der Tastenkombination (Strg)+(Z)

machen Sie diese Änderung wieder rückgängig.

UnterordnungFalls Sie das Spielobjekt RaketeZwei bei der oben genannten Änderung

genau auf dem Spielobjekt RaketeEins loslassen (siehe Abbildung 1.7), wird

es dem Spielobjekt RaketeEins hierarchisch untergeordnet (siehe Abbil-

dung 1.8).

Abbildung 1.7 Falscher Zeitpunkt

zum Loslassen

Abbildung 1.8 Falsche Hierarchie

von Spielobjekten

Diese Unterordnung kann aus zwei Gründen erwünscht sein:

Gemeinsam

bewegen

� Sie haben ein Spielobjekt, das aus mehreren untergeordneten Spielob-

jekten zusammengesetzt wird. Das kann zum Beispiel das Spielobjekt

Mensch sein, das aus den Körperteilen (sprich: Spielobjekten) Kopf, Rumpf,

Linker Arm, Rechter Arm, Linkes Bein und Rechtes Bein besteht. Falls der

Mensch als Ganzes bewegt wird, bewegen sich alle seine Körperteile

mit ihm. Es gibt also das übergeordnete Spielobjekt Mensch und sechs

untergeordnete Spielobjekte für die einzelnen Körperteile, siehe Abbil-

dung 1.9.

Page 5: Einstieg in Unity – Ideal für Programmieranfänger · PDF fileprobe führt Sie durch den Unity-Editor und hilft Ihnen bei den ersten Schritten hin zu einem einfachen 2D-Spiel. Sie

1 Das erste 2D-Projekt

30

Verzeichnis � Sie haben sehr viele Spielobjekte, die Sie thematisch zusammenfassen

möchten, damit Sie in der Hierarchy View nicht den Überblick verlie-

ren. Dabei dient das übergeordnete Spielobjekt als Verzeichnis, ver-

gleichbar einem Verzeichnis im Dateisystem Ihres Rechners. Das kann

zum Beispiel das Verzeichnis Raum sein, in dem sich die Spielobjekte

Boden, Decke, Linke Wand und Rechte Wand befinden, siehe ebenfalls Abbil-

dung 1.9.

Abbildung 1.9 Spielobjekte als übergeordnete Verzeichnisse

Parent und Child Ein übergeordnetes Spielobjekt wird Parent (dt.: Elternteil) genannt, ein un-

tergeordnetes Spielobjekt Child (dt.: Kind). Die Mehrzahl von Child ist Chil-

dren (dt.: Kinder). Der Vorgang des Unterordnens innerhalb einer Unity-

Hierarchie wird Parenting genannt. Alle diese Begriffe werden uns in den

Unity-Projekten begegnen.

In diesem Projekt ist die Unterordnung allerdings nicht erwünscht. Ma-

chen Sie diese Änderung daher mithilfe der Tastenkombination (Strg)+(Z)

rückgängig, sodass sich wieder die ursprüngliche Reihenfolge wie in Abbil-

dung 1.6 ergibt.

1.7 Eine Szene speichern

Save Scene Sie sollten eine Spielszene nach dem Einfügen von Spielobjekten oder nach

anderen Änderungen regelmäßig speichern. Rufen Sie dazu den Menü-

punkt File • Save Scene auf. Es wird das Unterverzeichnis Assets Ihres

Projekts zur Speicherung angeboten. Speichern Sie die Szene dort, zum Bei-

spiel unter dem Namen Szene1. Szene-Dateien haben die Endung unity, wie

Sie in der Project View in Abbildung 1.10 sehen.

1.8 Die Komponente »Transform«

31

Abbildung 1.10 Asset vom Typ »Szene«

Später genügt die Tastenkombination (Strg)+(S) zum erneuten Speichern.

Ein Projekt kann aus mehreren Szenen bestehen, die nacheinander durch-

laufen werden. Unser Projekt hat nur eine Szene.

1.8 Die Komponente »Transform«

Position, Drehung

und Größe

Jedes Spielobjekt besitzt die Komponente Transform. Die Transform-

Komponente ist die wichtigste Komponente. Sie dient zur Festlegung der

Position, der Drehung und der Größe eines Spielobjekts. Markieren Sie ein-

mal das Spielobjekt RaketeEins in der Hierarchy View oder in der Scene

View. In der Inspector View sehen Sie nun seine Komponenten, wie zum

Beispiel die Transform-Komponente in Abbildung 1.11.

Abbildung 1.11 Spielobjekt »RaketeEins«, Transform-Komponente

1.8.1 Die Eigenschaften der Transform-Komponente

In der Transform-Komponente können Sie die nachfolgenden Eigenschaf-

ten eines Spielobjekts sehen und verändern.

Die Eigenschaft Position:

X- und Y-Achse Sie gibt die Position des Spielobjekts auf dem Spielfeld entlang der drei Ko-

ordinatenachsen an. Die X-Achse verläuft von links nach rechts. Ein Spiel-

objekt hat am linken Rand des Spielfelds also zum Beispiel den X-Wert –5,

Page 6: Einstieg in Unity – Ideal für Programmieranfänger · PDF fileprobe führt Sie durch den Unity-Editor und hilft Ihnen bei den ersten Schritten hin zu einem einfachen 2D-Spiel. Sie

1 Das erste 2D-Projekt

32

in der Mitte den X-Wert 0 und am rechten Rand den X-Wert 5. Die Y-Achse

verläuft von unten nach oben. Ein Spielobjekt hat am unteren Rand des

Spielfelds also zum Beispiel den Y-Wert –5, in der Mitte den Y-Wert 0 und

am oberen Rand den Y-Wert 5.

Z-Achse Bei 2D-Spielen wird die Z-Koordinate für die dritte Dimension nur selten

benötigt. Die Z-Achse verläuft von vorne (vom Benutzer aus vor dem Bild-

schirm) nach hinten (vom Benutzer aus hinter dem Bildschirm). Ein Spiel-

objekt hat vor dem Bildschirm also zum Beispiel den Z-Wert –5, auf der Ebe-

ne des Bildschirms den Z-Wert 0 und hinter dem Bildschirm den Z-Wert 5.

Linke-Hand-Regel Zur Verdeutlichung der drei Achsen dient die Linke-Hand-Regel:

� Der Daumen der linken Hand soll nach rechts weisen. Damit zeigt er in

Richtung der positiven X-Achse.

� Der Zeigefinger der linken Hand soll nach oben weisen. Damit zeigt er in

Richtung der positiven Y-Achse.

� Der Mittelfinger der linken Hand soll abgewinkelt werden und nach hin-

ten weisen, sozusagen durch den Bildschirm hindurch. Damit zeigt er in

Richtung der positiven Z-Achse.

Das Spielobjekt Main Camera stellt bezüglich der Z-Koordinate eine Ausnah-

me dar. Mit einem Wert von –10 steht es vor dem Bildschirm. Daher schau-

en wir von vorne auf das Spielfeld.

Die Eigenschaft Rotation:

Drehung in Grad Sie gibt die Drehung des Spielobjekts um die X-Achse, um die Y-Achse und

um die Z-Achse als Winkel in Grad an. In 2D-Projekten ist normalerweise

nur eine Drehung um die Z-Achse, also eine Drehung in der Ebene des Bild-

schirms, sinnvoll. Ein positiver Wert bedeutet eine Drehung um die Z-Ach-

se gegen den Uhrzeigersinn.

Die Eigenschaft Scale:

Faktor für Größe Sie gibt die relative Größe des Spielobjekts in der X-Richtung, in der Y-Rich-

tung und in der Z-Richtung mithilfe eines Skalierungsfaktors an. Zunächst

haben alle drei Faktoren den Wert 1.

1.8.2 Werte in der Inspector View ändern

Nach dem Einfügen eines neuen Spielobjekts besitzt es zunächst die fol-

genden Transform-Werte, siehe auch Abbildung 1.11:

1.8 Die Komponente »Transform«

33

� Es liegt in der Mitte des Spielfelds, bei X = 0, Y = 0 und Z = 0, oder – ver-

kürzt ausgedrückt – an der Position 0/0/0.

� Es ist nicht gedreht, die Rotation liegt also ebenfalls bei 0/0/0.

� Es hat seine Originalgröße, der Scale steht also bei 1/1/1.

In Abbildung 1.12 sehen Sie das Spielfeld, nachdem die Transform-Werte für

die Spielobjekte RaketeEins und RaketeZwei in der Inspector View geän-

dert wurden. Die Einstellung der Kamera wurde nicht geändert.

Abbildung 1.12 Transform-Werte geändert

Ort und Größe

geändert

Links in Abbildung 1.12 sehen Sie das Spielobjekt RaketeEins an der Position

–5/0/0. Es ist nicht gedreht, die Rotation beträgt also 0/0/0. Es ist in X-

Richtung leicht und in Y-Richtung etwas stärker vergrößert. Die Größe in Z-

Richtung ist nicht relevant und kann auf 0 gesetzt werden. Der Scale be-

trägt nun 1.2/1.8/0.

DezimalpunktDie Stellen nach dem Komma werden, wie im englischen Sprachraum üb-

lich, mit einem Dezimalpunkt statt einem Dezimalkomma abgetrennt. So

sehen Sie es auch auf den Abbildungen dieses Buches, und so müssen Sie

auch später die Werte im Programmcode eingeben. Zur Verminderung der

Fehlerquote nutze ich daher auch im erläuternden Text dieses Buches den

im deutschen Sprachraum eigentlich unüblichen Dezimalpunkt. Es gibt

eine kleine Hilfestellung: Falls Sie in der Inspector View einen Wert mit

einem Dezimalkomma eingeben, wird daraus automatisch ein Dezimal-

punkt.

Ort und Drehung

geändert

Oben rechts in Abbildung 1.12 sehen Sie das Spielobjekt RaketeZwei an der

Position 0/2.5/0. Es ist um 30 Grad gegen den Uhrzeigersinn um die Z-Ach-

se gedreht, die Rotation beträgt also 0/0/30. Es ist in Y-Richtung leicht ver-

kleinert und in X-Richtung etwas vergrößert, der Scale beträgt 1.8/0.8/0.

Page 7: Einstieg in Unity – Ideal für Programmieranfänger · PDF fileprobe führt Sie durch den Unity-Editor und hilft Ihnen bei den ersten Schritten hin zu einem einfachen 2D-Spiel. Sie

1 Das erste 2D-Projekt

34

Negativer Winkel Falls Sie bei einer der Rotationsachsen einen Winkel zwischen 180 und 360

Grad einstellen, kann es vorkommen, dass Unity diesen Wert automatisch

auf den zugehörigen negativen Wert ändert. Das ist kein Problem und hat

keinen Einfluss auf den Ablauf. Ein Beispiel: Der Wert 330 Grad wird geän-

dert auf –30 Grad, also 330 Grad minus 360 Grad.

Selber ändern Ändern Sie in der Inspector View einzelne Transform-Werte der beiden

Spielobjekte, und schauen Sie sich die Auswirkungen unmittelbar nach der

Änderung an. Damit lernen Sie den Umgang mit den Koordinaten, Achsen,

Drehungen und Größenverhältnissen recht schnell.

Alternativ können Sie die Transform-Werte auch mithilfe der Maus

ändern. Das wird im folgenden Abschnitt 1.9 beschrieben.

1.9 Die Ansicht in der Scene View

Sie haben mehrere Möglichkeiten, die Ansicht der Scene View zu ändern.

Drücken Sie zunächst einmal die Taste (Alt), und halten Sie sie gedrückt.

Der Mauszeiger ändert sich über der Scene View in eine Hand. Nutzen Sie

nun zusätzlich eine der folgenden Maustasten:

Verschieben � Verschieben Sie mithilfe der gedrückten linken Maustaste die Ansicht

der Scene View nach links, rechts, oben oder unten.

Zoomen � Zoomen Sie in die Scene View hinein, und zwar mit der gedrückten

rechten Maustaste und einer Verschiebung der Maus nach rechts oder

unten.

� Zoomen Sie aus der Scene View heraus, und zwar mit der gedrückten

rechten Maustaste und einer Verschiebung der Maus nach links oder

oben.

Fokussieren Zur genauen Betrachtung eines einzelnen Spielobjekts können Sie es fo-

kussieren. Markieren Sie es dazu in der Hierarchy View, setzen Sie die

Maus über die Scene View und drücken Sie anschließend die Taste (F). Das

betreffende Objekt wird herangezoomt. Anschließend können Sie zum Bei-

spiel das Spielobjekt Main Camera fokussieren, um wieder herauszuzoomen.

1.9.1 Positionswerte mithilfe der Maus ändern

Symbolleisten Oben links stehen Ihnen zwei Symbolleisten mit insgesamt sieben Schalt-

flächen zur Verfügung, die unter anderem zur Änderung der Transform-

1.9 Die Ansicht in der Scene View

35

Werte von Spielobjekten mithilfe der Maus dienen, siehe Abbildung 1.13.

Ich habe sie zur besseren Übersicht nummeriert.

Local, GlobalMithilfe der Schaltfläche Nr. 7 können Sie zwischen den Zuständen Local

und Global umschalten:

� Die Einstellung Local bedeutet, dass Sie in der Scene View mit den

lokalen Achsen des Spielobjekts arbeiten.

� Die Einstellung Global bedeutet, dass Sie in der Scene View mit den

globalen Achsen arbeiten, die für das gesamte Spielfeld gelten.

Die Bedeutung wird nachfolgend noch klarer. Stellen Sie den Schalter

zunächst auf Local.

Abbildung 1.13 Zwei Symbolleisten

Positions-HandleBetätigen Sie die Schaltfläche Nr. 2, und markieren Sie eines der Spielobjek-

te, zum Beispiel RaketeZwei. Über dem Spielobjekt erscheint ein Handle zur

Änderung der Position, siehe Abbildung 1.14.

Verschieben

entlang Achse

Fassen Sie mit der Maus an einer der beiden Pfeilspitzen des Handles an,

und verschieben Sie das Spielobjekt entlang seiner lokalen X-Achse (rot)

oder entlang seiner lokalen Y-Achse (grün). Beachten Sie parallel die Ände-

rung der Positionswerte in der Inspector View.

Globale AchsenStellen Sie den oben genannten Schalter nun auf Global. Das Handle zur

Änderung der Position erscheint mit den globalen X- und Y-Achsen, also

den Achsen des gesamten Spielfelds, siehe Abbildung 1.15.

Abbildung 1.14 Position entlang der

lokalen Achsen ändern

Abbildung 1.15 Position entlang der

globalen Achsen ändern

Page 8: Einstieg in Unity – Ideal für Programmieranfänger · PDF fileprobe führt Sie durch den Unity-Editor und hilft Ihnen bei den ersten Schritten hin zu einem einfachen 2D-Spiel. Sie

1 Das erste 2D-Projekt

36

Verschieben

auf Ebene

Alternativ können Sie mit der Maus auch das blaue Quadrat anfassen, das

sich rechts oberhalb der Mitte des Spielobjekts befindet. Sie können es da-

mit frei auf der X-Y-Ebene verschieben. Das ist die Ebene, die durch die X-

Achse und die Y-Achse gebildet wird

1.9.2 Rotationswerte mithilfe der Maus ändern

Rotations-Handle Stellen Sie den oben genannten Schalter nun wieder auf Local. Betätigen

Sie die Schaltfläche Nr. 3 in Abbildung 1.13, und markieren Sie eines der

Spielobjekte, zum Beispiel wiederum RaketeZwei. Über dem Spielobjekt er-

scheint ein Handle zur Änderung der Rotation, siehe Abbildung 1.16.

Drehen um Achse Fassen Sie mit der Maus an einem der beiden Kreise an, und drehen Sie da-

mit das Spielobjekt um die Z-Achse. Beachten Sie parallel die Änderung der

Rotationswerte in der Inspector View.

Abbildung 1.16 Rotation ändern

Falls Sie den oben genannten Schalter wieder auf Global stellen, ändern

sich die Kreise für die Änderung um die Z-Achse nicht. Da bei 2D-Projekten

nur Rotationen um die Z-Achse sinnvoll sind, hat hier die Änderung des

Schalters keine Auswirkung.

1.9.3 Scale-Werte mithilfe der Maus ändern

Scale-Handle Betätigen Sie die Schaltfläche Nr. 4 in Abbildung 1.13, und markieren Sie

eines der Spielobjekte. Über dem Spielobjekt erscheint ein Handle zur Än-

derung des Scales, siehe Abbildung 1.17:

Einzeln ändern � Fassen Sie mit der Maus an einem der beiden äußeren Quadrate an, und

vergrößern oder verkleinern Sie das Spielobjekt in der Höhe oder in der

Breite.

1.9 Die Ansicht in der Scene View

37

Proportional

ändern

� Fassen Sie mit der Maus an dem weißen Quadrat in der Mitte an, und

vergrößern oder verkleinern Sie das Spielobjekt unter Beibehaltung des

Verhältnisses von Höhe zu Breite.

Beachten Sie parallel die Änderung der Scale-Werte, das sogenannte Skalie-

ren, in der Inspector View. Sie können den oben genannten Schalter nicht

auf Global oder Local stellen, da das keine Auswirkung für die Änderung

eines Scale-Wertes hätte.

Abbildung 1.17 Scale ändern

Page 9: Einstieg in Unity – Ideal für Programmieranfänger · PDF fileprobe führt Sie durch den Unity-Editor und hilft Ihnen bei den ersten Schritten hin zu einem einfachen 2D-Spiel. Sie

38

2 Spielen Sie ein 2D-Jump&Run-Spiel

Kapitel 2

Spielen Sie ein 2D-Jump&Run-Spiel

Zunächst sollen Sie das fertige 2D-Spiel TomsJumpAndRun selber spielen,

damit Sie seine Elemente kennenlernen. Anschließend werden Sie es Stück

für Stück selber entwickeln. Während der Entwicklung kann das Projekt im

jeweiligen Zustand bereits gestartet werden, um die bis dahin eingebauten

Elemente zu testen.

Typische Anreize Das Spiel bietet die folgenden typischen Anreize, die Ihnen bei Spielen

immer wieder begegnen werden:

� Es gibt einen Spieler, der von Ihnen bewegt werden muss.

� Sie können durch Ihre Geschicklichkeit Punkte sammeln.

� Sie haben einige Leben zur Verfügung, die Sie aber verlieren können.

� Das Spiel wird im Verlauf immer schwieriger.

� Anzeigen informieren Sie über den Spielstand.

� Eine Zeitmessung motiviert Sie, immer schneller zu werden.

� Eine Anleitung erläutert Ihre Möglichkeiten.

2.1 Starten Sie das Spiel

Öffnen Sie zunächst das Verzeichnis der Unity-Projekte, das Sie in der Ein-

führung im Abschnitt »Projektverzeichnis und Vorlagen« festgelegt haben.

Starten Sie das ausführbare Programm TomsJumpAndRun.exe im Unter-

verzeichnis TomsJumpAndRun/Builds. Als Erstes erscheint ein Dialogfeld

zur Konfiguration.

Konfiguration Stellen Sie auf der Registerkarte Graphics die Werte wie in Abbildung 2.1

ein, und betätigen Sie die Schaltfläche Play!. Für einige Sekunden er-

scheint der Startbildschirm der Unity Personal Edition und anschließend

das Spiel, siehe Abbildung 2.2. Die Spielfelder in meinen Projekten haben

ein Größenverhältnis von 16 zu 9. Es bietet sich an, eine Bildschirmauflö-

sung im selben Verhältnis zu nutzen, also zum Beispiel 1366 zu 768.

2.2 Wie geht das Spiel?

39

Abbildung 2.1 Einstellungswerte für das ausführbare Programm

2.2 Wie geht das Spiel?

Ziel des SpielsEs handelt sich um ein einfaches Jump&Run-Spiel, in dem Sie den Spieler

bewegen können. Ziel des Spiels ist es, Punkte zu sammeln und gleichzeitig

Gefahren aus dem Wege zu gehen. Das Spiel lässt sich eigentlich auch ohne

Anleitung spielen. Dennoch möchte ich den Ablauf hier erläutern, damit

wir es anschließend in allen Einzelheiten selber programmieren können.

Abbildung 2.2 Das Spiel »TomsJumpAndRun«

Spieler bewegenGemäß der Anleitung am oberen Rand des Spielfelds können Sie den

schwarzen Spieler mit den Tasten (í) und (î) in die entsprechenden

Richtungen bewegen. Mit der Taste (ì) können Sie den Spieler springen

lassen. Sie können den Spieler auch während eines Sprungs nach links oder

rechts bewegen. Die weißen Plattformen können Sie für eine Landung und

für einen weiteren Absprung nutzen.

Page 10: Einstieg in Unity – Ideal für Programmieranfänger · PDF fileprobe führt Sie durch den Unity-Editor und hilft Ihnen bei den ersten Schritten hin zu einem einfachen 2D-Spiel. Sie

2 Spielen Sie ein 2D-Jump&Run-Spiel

40

Punkte sammeln Berührt der Spieler bei einem Sprung den grünen Gewinn, so erhalten Sie

einen Punkt. Anschließend erscheint der Gewinn an einer anderen Stelle.

Mit Verlauf des Spiels wird der Gewinn schwerer erreichbar, da er weiter

oben platziert wird. Nach dem Erreichen von sechs Punkten haben Sie das

Spiel gewonnen. Die Zeit, die Sie dafür benötigt haben, wird festgehalten.

Leben verlieren Berührt der Spieler eine der roten, sich selbständig bewegenden Gefahren,

so verliert er eines seiner drei Leben. Nach dem Verlust des letzten Lebens

ist das Spiel verloren.

Anzeigen Links oben sehen Sie einige Anzeigen:

� Ihren aktuellen Punktestand

� die aktuelle Anzahl an Leben, die Ihnen noch verbleiben

� die laufende Spielzeit seit der ersten Bewegung des Spielers

� die Zeit, die Sie beim vorherigen Versuch benötigt haben

Rechts oben sehen Sie zwei Schaltflächen:

� zum Start eines neuen Spiels

� zur Beendigung der gesamten Anwendung.

Kommentare Am oberen Rande des Spielfelds erscheinen verschiedene Informationen.

Zu Beginn steht dort die bereits erwähnte kurze Spielanleitung. Nach Erlan-

gen eines Punkts, nach Verlust eines Lebens und nach Spielende steht dort

ein entsprechender Kommentar.

Spielen So, dann legen Sie einmal los, und spielen Sie einige Runden, damit Sie die

Bewegungen, Elemente und Reaktionen des Spiels kennenlernen.

2.3 Unsere ersten Unity-Elemente

Betrachten wir die einzelnen Elemente des Spiels im Unity Editor. Dabei

machen wir uns bereits mit einigen Begriffen vertraut, die wir später zur

Entwicklung benötigen.

Projekt öffnen Starten Sie dazu Unity, und betätigen Sie rechts oben den Link Open. Es öff-

net sich ein Dialogfeld, in dem standardmäßig das Verzeichnis der Unity-

Projekte angezeigt wird, das Sie in der Einführung im Abschnitt »Projekt-

verzeichnis und Vorlagen« festgelegt haben. Sollte ein anderes Verzeichnis

angezeigt werden, so müssen Sie das richtige Verzeichnis zunächst im

Dialogfeld aufsuchen. Anschließend werden alle Projektverzeichnisse an-

2.3 Unsere ersten Unity-Elemente

41

gezeigt. Wählen Sie das Verzeichnis TomsJumpAndRun aus, indem Sie es

einmal anklicken. Betätigen Sie die Schaltfläche Ordner auswählen.

AnsichtEs öffnet sich der Unity Editor mit dem ausgewählten Projekt. Die Scene

View zeigt das Spielfeld inklusive seines weißen Rahmens. Sollte das Spiel-

feld nicht vollständig zu sehen sein, sollten Sie das Layout des Unity

Editors und die Ansicht der Scene View durch Größenänderung und

Verschiebung noch anpassen, siehe Abschnitt 1.9.

2.3.1 Assets

Schauen wir uns zunächst die Assets für das Projekt an. Sie sind zur besse-

ren Übersicht in Verzeichnissen gruppiert.

Asset-VerzeichnisseNachdem wir in der Project View das Hauptverzeichnis Assets markiert

haben, sehen wir das Asset Szene1 für die einzige Szene des Spiels und die

beiden Unterverzeichnisse Scripts und Sprites, siehe Abbildung 2.3.

Abbildung 2.3 Assets, Hauptverzeichnis

VerzeichnisansichtViele Elemente im Unity Editor haben Unterelemente. Das erkennen Sie

an dem Pfeil links neben dem Namen des betreffenden Elements, hier am

Beispiel des Hauptverzeichnisses Assets. Mit einem Klick auf den Pfeil

können Sie die Verzeichnisse auf- und zuklappen, also die Unterelemente

ein- oder ausblenden, wie bei einer Verzeichnisansicht im Windows Ex-

plorer.

C#-ScripteNach der Markierung des Unterverzeichnisses Scripts in der Project

View sehen wir zwei Assets vom Typ C#-Script. Sie sind erkennbar an den

Symbolen für die Script-Dateien Gefahren.cs und Spieler.cs, siehe Abbil-

dung 2.4. Über die Symbole können wir die Programme erreichen, die in

der Programmiersprache C# geschrieben sind:

Page 11: Einstieg in Unity – Ideal für Programmieranfänger · PDF fileprobe führt Sie durch den Unity-Editor und hilft Ihnen bei den ersten Schritten hin zu einem einfachen 2D-Spiel. Sie

2 Spielen Sie ein 2D-Jump&Run-Spiel

42

Spieler.cs � In der Script-Datei Spieler.cs findet sich die Klasse Spieler, in der die Ei-

genschaften und das Verhalten des schwarzen Spielers festgelegt wer-

den. Außerdem werden von hier aus die meisten Abläufe gesteuert, da

es sich bei dem Spieler um das wichtigste Objekt des Spiels handelt. Das

umfasst zum Beispiel den Start und das Ende des Spiels, die Zeitmes-

sung, das Erfassen von Punkten und Leben, die verschiedenen Anzeigen

und einiges mehr.

Gefahren.cs � In der Klasse Gefahren in der Script-Datei Gefahren.cs werden die Eigen-

schaften der sechs roten Gefahren festgelegt.

Abbildung 2.4 Script-Assets

Sprites Falls wir auf der linken Seite der Project View das Unterverzeichnis

Sprites markieren, sehen wir einige Assets vom Typ Sprite. Sie sind er-

kennbar an den Symbolen für die vier Bilddateien Gruen.png, Rot.png,

Schwarz.png und Weiss.png, siehe Abbildung 2.5.

Abbildung 2.5 Sprite-Assets

Verwendung Jede Datei ist einfarbig gestaltet und hat eine Größe von 30 mal 30 Pixel.

Die Assets werden für die verschiedenen Teile des Spielfelds verwendet:

Schwarz für den Spieler, Gruen für den Gewinn, Rot für die Gefahren und

Weiss für die Begrenzung und die Plattformen.

2.3 Unsere ersten Unity-Elemente

43

2.3.2 Spielobjekte

MarkierenWir untersuchen die verschiedenen Spielobjekte in der Hierarchy View,

siehe Abbildung 2.6. Dabei markieren wir nacheinander die angesproche-

nen Elemente von oben nach unten, damit wir sie jeweils in der Scene

View identifizieren können und die wichtigen Eigenschaften und ihre

Werte in der Inspector View betrachten können.

Abbildung 2.6 Spielobjekte in der Hierarchy View

Das Spielobjekt Main Camera in der Mitte des Spielfelds haben Sie bereits in

Abschnitt 1.3 kennengelernt.

Spielobjekt

»Spieler«

Das Spielobjekt Spieler basiert auf dem Sprite-Asset Schwarz und hat meh-

rere wichtige Komponenten, siehe Abbildung 2.7:

� In der Transform-Komponente sehen Sie die Position und die Größe.

Rigidbody 2D� Die Komponente Rigidbody 2D sorgt dafür, dass sich der Spieler 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 Spieler nach unten zieht und Kollisionen mit anderen Spielobjekten

bemerkt werden können.

Box Collider 2D� Die Komponente Box Collider 2D bestimmt die Form des Kollisions-

objekts. Häufig stimmt sie mit der sichtbaren Form des Spielobjekts

überein. Zudem sorgt dieser Collider dafür, dass der Spieler keine der

Begrenzungen oder Plattformen durchdringen kann. Er fällt also zum

Beispiel nicht einfach aufgrund der Schwerkraft durch den Boden.

C#-Script� In der Komponente Spieler (Script) ist dem Spielobjekt das Script-

Asset Spieler zugeordnet. Damit wird festgelegt, dass sich das Spielob-

jekt so verhält, wie es in dem C#-Script vorgegeben wird.

Ein Box Collider 2D ist rechteckig, daher ist er für alle Spielobjekte in die-

sem Projekt geeignet.

Page 12: Einstieg in Unity – Ideal für Programmieranfänger · PDF fileprobe führt Sie durch den Unity-Editor und hilft Ihnen bei den ersten Schritten hin zu einem einfachen 2D-Spiel. Sie

2 Spielen Sie ein 2D-Jump&Run-Spiel

44

Spielobjekt

»Gewinn«

Das Spielobjekt Gewinn basiert auf dem Sprite-Asset Gruen. In Abbildung 2.8

erkennen Sie die Größe. Außerdem sehen Sie die Position des ersten Ge-

winns nach Start des Spiels. Eine Kollision mit dem Spieler muss bemerkt

werden, damit es Punkte gibt. Daher hat auch dieses Spielobjekt eine Kom-

ponente Box Collider 2D.

Abbildung 2.7 Spielobjekt »Spieler«,

Komponenten

Abbildung 2.8 Spielobjekt »Gewinn«,

Komponenten

Tag Im oberen linken Bereich sehen Sie, dass das Spielobjekt den Tag Gewinn be-

sitzt. Ein Tag (englisch 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 einzelne Spielobjekte oder Gruppen von Spielobjekten im C#-Code

voneinander unterscheiden.

Begrenzungen

und Plattformen

Das Spielobjekt Raum in Abbildung 2.9 dient lediglich als Verzeichnis für die

untergeordneten Spielobjekte, siehe auch Abschnitt 1.6. Diese bilden die

Begrenzung des Spielfelds und die Plattformen. Alle basieren auf dem

Sprite-Asset Weiss. Markieren Sie einmal nacheinander die Spielobjekte in

der Hierarchy View, um ihre Lage in der Scene View und ihre Kompo-

nenten in der Inspector View zu betrachten. Ich empfehle Ihnen, in Ihren

Projekten ähnlich selbsterklärende Namen zu wählen.

Spielfeld nicht

verlassen

Alle Spielobjekte besitzen einen Box Collider 2D. Auf diese Weise wird

zum Beispiel verhindert, dass der schwarze Spieler aufgrund der Schwer-

kraft durch den Boden oder eine der Plattformen fallen kann. So kann er

auch das Spielfeld nicht durch eine der Wände verlassen.

2.3 Unsere ersten Unity-Elemente

45

Abbildung 2.9 Begrenzung des Spielfelds und Plattformen

Spielobjekte

für Gefahren

Das Spielobjekt Gefahren in Abbildung 2.10 dient als Verzeichnis für die ins-

gesamt sechs roten Gefahren. Alle basieren auf dem Sprite-Asset Rot. In der

Inspector View sehen Sie, dass alle das Tag Gefahr besitzen. Wie der grüne

Gewinn besitzen auch diese Spielobjekte einen Box Collider 2D, damit

eine Kollision mit dem schwarzen Spieler bemerkt werden kann.

Abbildung 2.10 Gefahren

C#-ScriptIn der Komponente Gefahren (Script) ist allen sechs Spielobjekten das

Script-Asset Gefahren zugeordnet. Damit wird festgelegt, dass sie sich so

verhalten, wie es in dem C#-Script vorgegeben wird.

User InterfaceDas Spielobjekt UI in Abbildung 2.11 dient als Verzeichnis für die Elemente

der Benutzeroberfläche. Der Begriff UI steht abkürzend für user interface,

zu deutsch: Schnittstelle zum Benutzer.

Rect TransformUI-Elemente besitzen eine Komponente des Typs Rect Transform statt

einer Komponente des Typs Transform. Sie umfasst besondere Eigenschaf-

ten zur Anordnung auf der Benutzeroberfläche

Komponente TextDie insgesamt fünf Anzeigen und die Text-Unterelemente der beiden

Schaltflächen (engl.: Buttons) dienen zum Anzeigen von Beschriftungen.

Daher besitzen Sie eine Komponente Text (Script) zur Erfassung und For-

matierung des dargestellten Texts.

Page 13: Einstieg in Unity – Ideal für Programmieranfänger · PDF fileprobe führt Sie durch den Unity-Editor und hilft Ihnen bei den ersten Schritten hin zu einem einfachen 2D-Spiel. Sie

2 Spielen Sie ein 2D-Jump&Run-Spiel

46

UI in Game View In der Game View sehen Sie die ersten vier Anzeigen oben links, die Info-

Anzeige oben in der Mitte und die beiden Schaltflächen oben rechts. Fokus-

sieren Sie die UI-Elemente einmal nacheinander mithilfe der Taste (F), um

sie auch in der Scene View betrachten zu können. Anschließend sollten Sie

wieder das Spielobjekt Main Camera fokussieren, um das eigentliche Spiel-

feld zu sehen.

EventSystem Das Spielobjekt EventSystem wird automatisch mit dem ersten UI-Element

hinzugefügt und dient im Hintergrund zur Behandlung von UI-Ereignis-

sen, zum Beispiel einem Klick auf eine Schaltfläche.

Abbildung 2.11 Benutzeroberfläche

Lassen Sie sich nicht irritieren, falls Unity einmal kurzfristig ein Grafik-Pro-

blem haben sollte, siehe Abbildung 2.12. Wechseln Sie einmal zwischen

Scene View und Game View, oder starten Sie das Spiel und beenden Sie es.

Anschließend wird wieder das »normale« Bild angezeigt.

Abbildung 2.12 Grafik-Problem

Page 14: Einstieg in Unity – Ideal für Programmieranfänger · PDF fileprobe führt Sie durch den Unity-Editor und hilft Ihnen bei den ersten Schritten hin zu einem einfachen 2D-Spiel. Sie

213

10 Ein 3D-Balancer

Kapitel 10

Ein 3D-Balancer

Sie entwickeln einen 3D-Balancer, den Sie in meinem Projekt TomsBalancer

finden. Dabei balancieren Sie eine Kugel auf einer Platte, treffen ein Ziel-

objekt und sammeln dadurch Punkte, möglichst ohne den Rand der Platte

zu berühren. Es kommen einige Elemente und Techniken zum Einsatz, die

Sie bereits in der Einführung für 3D-Projekte in Kapitel 8 kennengelernt ha-

ben. Zunächst sollen Sie es selber spielen, um es kennenzulernen.

10.1 Führen Sie das Spiel aus

KonfigurationÖffnen Sie das Verzeichnis der Unity-Projekte. Starten Sie das ausführbare

Programm TomsBalancer.exe im Unterverzeichnis TomsBalancer/Builds.

Wählen Sie auf dem Dialogfeld zur Konfiguration eine Auflösung im Ver-

hältnis von 16:9 (zum Beispiel 1366 mal 768 oder 1280 mal 720), die beste

Grafikqualität und eine Fensterdarstellung. Das Spiel sehen Sie in Abbil-

dung 10.1.

Android-AppDas Beispielprojekt zum Herunterladen beinhaltet – hier noch nicht sicht-

bar – eine Schaltfläche zum Beenden der Anwendung. Sie wird in Abschnitt

21.3 zur Erstellung einer Android-App benötigt.

Abbildung 10.1 Das Spiel »TomsBalancer«

Anordnung

der Achsen

Im Projekt TomsBalancer verläuft die X-Achse in der Mitte des Bodens der

hellbraunen Spielplatte von links nach rechts. Auf die Y-Achse wird in dem

Page 15: Einstieg in Unity – Ideal für Programmieranfänger · PDF fileprobe führt Sie durch den Unity-Editor und hilft Ihnen bei den ersten Schritten hin zu einem einfachen 2D-Spiel. Sie

10 Ein 3D-Balancer

214

Spiel kein Bezug genommen; sie verläuft von unten nach oben und

»durchbohrt« das Zentrum der Platte. Die Z-Achse verläuft, aus Richtung

des Benutzers gesehen, in der Mitte des Bodens der Platte von vorne nach

hinten. Die Platte ist um keine der Achsen gedreht, also ausbalanciert. Da-

her steht die braune Spieler-Kugel still.

Platte drehen Sie können die Platte inklusive ihrer hellbraunen Ränder und des grünen

Gewinn-Würfels drehen. Mithilfe der Taste (í) und der Taste (î) drehen

Sie sie um die Z-Achse, also kippt sie nach links oder nach rechts. Mithilfe

der Taste (ì) und der Taste (ë) drehen Sie sie um die X-Achse, also kippt

sie vom Benutzer weg oder zum Benutzer hin. Als Folge davon rollt die Ku-

gel in die entsprechende Richtung. Sobald sich die Kugel in Z-Richtung be-

wegt, also vom Benutzer weg- oder zum Benutzer hinrollt, bewegt sich die

Kamera mit.

Punkte Ziel des Spiels ist es, möglichst viele Punkte zu sammeln. Falls Sie mit der

Kugel den Würfel treffen, erhalten Sie einen Punkt. Nach einem solchen

Treffer erscheint der Würfel an einer anderen Stelle. Sobald Sie den Rand

treffen, wird Ihnen ein Punkt abgezogen.

Drehwinkel Die beiden Hilfsanzeigen unter der Punkte-Anzeige geben den Winkel an,

um den die Platte aktuell bezüglich der X-Achse und der Z-Achse gedreht

ist. Sie werden feststellen, dass die Platte maximal um 7.5 Grad zu einer

Seite gekippt werden kann. Ansonsten wäre es zu schwierig, die rollende

Kugel vor dem Rand abzufangen. Zudem könnte die Kugel über den Rand

fallen.

Spielen So, dann machen Sie sich einmal mit den Bewegungen vertraut, und ver-

suchen Sie, mehr Punkte zu gewinnen als zu verlieren.

10.2 Bereiten Sie das Spiel vor

Die Spielobjekte und die Benutzeroberfläche werden erzeugt. Sie lernen

das Konzept der relativen Transform-Werte genauer kennen.

10.2.1 Erzeugen Sie Projekt und Assets

Projekt anlegen Zur Entwicklung des eigenen Spiels wird zunächst ein neues 3D-Projekt an-

gelegt, zum Beispiel mit dem Namen MeinBalancer. Der Unity Editor öff-

net sich mit dem neuen Projekt. Wie immer sollten die beiden Schalter

16:9 und Maximize on Play bereits eingestellt sein.

10.2 Bereiten Sie das Spiel vor

215

Kamera und LichtDas Spielobjekt Main Camera erhält die Position 0/4/–10 und die Rotation

30/0/0. So schauen wir von schräg oben auf die Platte. Die Lichtquelle

Directional Light verbleibt an der Position 0/3/0 und bei der Rotation

50/330/0.

Oberflächen-material

Legen Sie in der Project View das Asset-Verzeichnis Materials an, und

erstellen Sie darin drei Assets für Oberflächenmaterialien, siehe Abschnitt

8.1.4. Bei der Eigenschaft Albedo werden die RGB-Werte 184/124/62 für das

Material DBraunMat, 85/118/57 für das Material DGruenMat und 248/125/0 für

das Material HBraunMat eingestellt.

Legen Sie zudem das Asset-Verzeichnis Scripts an, in dem wir später die

C#-Programme ablegen. Vergessen Sie nicht, mindestens nach jedem Ab-

schnitt die geänderte Spielszene zu speichern.

10.2.2 Erzeugen Sie Spielfeld und UI

PlatteErzeugen Sie ein einfaches 3D-Objekt vom Typ Cube mit dem Namen

Platte, mit der Position 0/–0.15/0 und dem Scale 10/0.3/10.

Ränder und GewinnErzeugen Sie fünf weitere einfache 3D-Objekte vom Typ Cube, ordnen Sie

sie dem Spielobjekt Platte unter und setzen Sie die Werte ihrer jeweiligen

Transform-Komponente zunächst zurück, und zwar wieder anhand des

Zahnrad-Menüs. Aus den neuen Spielobjekten werden die vier Ränder und

der Gewinn geformt, mithilfe von relativen Scale-Werten. Dazu mehr in Ab-

schnitt 10.2.3. Benennen Sie sie wie folgt: RandLinks, RandRechts, RandVorne,

RandHinten und Gewinn.

SpielerErzeugen Sie zudem ein einfaches 3D-Objekt vom Typ Sphere, und nennen

Sie es Spieler. Alle einfachen 3D-Objekte besitzen automatisch von Beginn

an einen passenden Collider.

Weisen Sie der Platte und den Rand-Objekten das Oberflächenmaterial

HBraunMat zu, dem Gewinn das Oberflächenmaterial DGruenMat und dem

Spieler das Oberflächenmaterial DBraunMat.

Das Spielobjekt Spieler befindet sich an der Position 0/3/0. Die Scale-Wer-

te stehen unverändert bei 1/1/1. Das Spielobjekt erhält eine Rigidbody-

Komponente, bei der die Eigenschaft Use Gravity markiert bleibt.

Drei AnzeigenErzeugen Sie auf dieselbe Weise wie in einem 2D-Projekt eine Benutzer-

oberfläche. Sie beinhaltet die drei Textfelder PunkteAnzeige, XWinkelAnzeige

und ZWinkelAnzeige innerhalb eines Canvas, den Sie UI nennen. Es gelten

die Werte aus Tabelle 10.1.

Page 16: Einstieg in Unity – Ideal für Programmieranfänger · PDF fileprobe führt Sie durch den Unity-Editor und hilft Ihnen bei den ersten Schritten hin zu einem einfachen 2D-Spiel. Sie

10 Ein 3D-Balancer

216

10.2.3 Relative Transform-Werte

Leeres Spielobjekt Wir haben bereits mehrmals leere Spielobjekte als Verzeichnis für andere

Spielobjekte genutzt. Das diente meist nur der besseren Übersicht in der

Hierarchy View. Die Transform-Daten eines leeren Spielobjekts sind je-

weils mithilfe des Zahnrad-Menüs zurückgesetzt, und zwar auf 0/0/0 für

Position und Rotation sowie auf 1/1/1 für Scale.

Aktives Spielobjekt In diesem Projekt dient ein aktives Spielobjekt mit eigenen Transform-

Daten als Verzeichnis für andere Spielobjekte: Das Spielobjekt Platte stellt

gleichzeitig das Verzeichnis für die vier Rand-Objekte und den Gewinn dar,

siehe Abbildung 10.2. Diese Spielobjekte sind der Platte untergeordnet. Das

bietet folgenden großen Vorteil: Sobald die Platte bewegt wird, bewegen

sich die anderen Spielobjekte mit.

Abbildung 10.2 Übergeordnetes Spielobjekt »Platte«

Name Werte

PunkteAnzeige Ausgangspunkt für die Positionierung: top/left

Pos X/Pos Y: 20/–20

Width/Height: 160/30

Text: Punkte: 0

Font Size: 18

Color: RGB 0/0/0

XWinkelAnzeige Wie PunkteAnzeige, außer:

Pos X/Pos Y: –20/–50

Text: xWinkel: 0.0

ZWinkelAnzeige Wie PunkteAnzeige, außer:

Pos X/Pos Y: –20/–80

Text: zWinkel: 0.0

Tabelle 10.1 Elemente der Benutzeroberfläche

10.2 Bereiten Sie das Spiel vor

217

Relative Transform-

Werte

Die in Tabelle 10.2 angegebenen Transform-Werte der untergeordneten

Spielobjekte für den Rand und den Gewinn sind keine absoluten Werte,

sondern beziehen sich auf die Transform-Daten des übergeordneten Spiel-

objekts Platte. Die Rotation beträgt jeweils 0/0/0.

Relative PositionZum Verständnis einer relativen Position betrachten wir einmal die X-Wer-

te: Die relative X-Position –0.5 befindet sich am linken Rand der Platte, die

relative X-Position 0.5 befindet sich am rechten Rand der Platte. Das kön-

nen Sie an den X-Positionen der Spielobjekte RandLinks und RandRechts er-

kennen.

Relativer ScaleEinen relativen Scale-Wert erläutere ich anhand der Y-Werte: Der Gewinn

ist in Y-Richtung doppelt so dick wie die Platte (Faktor 2). Alle Ränder sind

in Y-Richtung jeweils anderthalbmal so dick wie die Platte (Faktor 1.5).

Absolute Trans-

form-Werte

Falls Sie einmal aus Neugier die absoluten Werte für Position oder Scale der

untergeordneten Spielobjekte berechnen möchten, multiplizieren Sie ein-

fach die entsprechenden Werte des übergeordneten Spielobjekts mit den

relativen Werten des untergeordneten Spielobjekts. Ein Beispiel: Der

Gewinn hat die absoluten Scale-Werte 10 × 0.06, 0.3 × 2 und 10 × 0.06, also

0.6/0.6/0.6.

Ansicht einstellenStellen Sie in der Scene View die folgende Ansicht her: Die X-Achse weist

nach rechts, die Y-Achse weist nach oben, die Z-Achse demzufolge nach

hinten. Die Ansicht wird ganz leicht gedreht, damit wir später auf die Platte

schauen wie in Abbildung 10.1.

Name Position Scale

Platte 0/–0.15/0 10/0.3/10

RandLinks –0.495/1.2/0 0.01/1.5/1

RandRechts 0.495/1.2/0 0.01/1.5/1

RandVorne 0/1.2/–0.495 1/1.5/0.01

RandHinten 0/1.2/0.495 1/1.5/0.01

Gewinn 0.2/1.55/–0.2 0.06/2/0.06

Tabelle 10.2 Spielobjekte vom Typ »Cube«

Page 17: Einstieg in Unity – Ideal für Programmieranfänger · PDF fileprobe führt Sie durch den Unity-Editor und hilft Ihnen bei den ersten Schritten hin zu einem einfachen 2D-Spiel. Sie

10 Ein 3D-Balancer

218

10.3 Erstellen Sie den Spielablauf

Zunächst soll die Platte um zwei Achsen gedreht werden können. Anschlie-

ßend wird die Punktzahl durch eine Berührung des Gewinns erhöht und

durch eine Kollision mit dem Rand vermindert.

10.3.1 Drehen Sie die Platte

Klasse »Platte« Die Platte soll mithilfe der Pfeil-Tasten nach links, nach rechts, vom Benut-

zer weg- und zum Benutzer hingedreht werden. Als Folge davon soll die Ku-

gel in die entsprechende Richtung rollen. Im Verzeichnis Scripts wird das

Script-Asset mit der Klasse Platte in der Datei Platte.cs erstellt. Die Klasse

soll wie folgt aussehen:

using UnityEngine;using UnityEngine.UI;public class Platte : MonoBehaviour{

float eingabeFaktor = 10;float grenzWinkel = 7.5f;

public Text xWinkelAnzeige;public Text zWinkelAnzeige;

void Update(){

float zEingabe = Input.GetAxis("Horizontal");float xEingabe = Input.GetAxis("Vertical");

float zWinkelNeu = transform.eulerAngles.z -zEingabe * eingabeFaktor * Time.deltaTime;

if (zWinkelNeu >= 0 && zWinkelNeu < 180&& zWinkelNeu > grenzWinkel)

zWinkelNeu = grenzWinkel;if (zWinkelNeu >= 180 && zWinkelNeu < 360

&& zWinkelNeu < 360 - grenzWinkel)zWinkelNeu = 360 - grenzWinkel;

float xWinkelNeu = transform.eulerAngles.x +xEingabe * eingabeFaktor * Time.deltaTime;

10.3 Erstellen Sie den Spielablauf

219

if (xWinkelNeu >= 0 && xWinkelNeu < 180&& xWinkelNeu > grenzWinkel) xWinkelNeu = grenzWinkel;

if (xWinkelNeu >= 180 && xWinkelNeu < 360&& xWinkelNeu < 360 - grenzWinkel)

xWinkelNeu = 360 - grenzWinkel;

transform.eulerAngles =new Vector3(xWinkelNeu, 0, zWinkelNeu);

xWinkelAnzeige.text =string.Format("xWinkel: {0,6:0.0}", xWinkelNeu);

zWinkelAnzeige.text =string.Format("zWinkel: {0,6:0.0}", zWinkelNeu);

}}

Listing 10.1 Klasse »Platte«

GrenzwinkelDer Eingabefaktor dient zur Skalierung der Eingabe des Benutzers bei der

Berechnung des neuen Drehwinkels. Der Grenzwinkel verhindert eine Dre-

hung, die einen Winkel von mehr als 7.5 Grad aufweist. Es werden zwei öf-

fentlich zugängliche Verweise auf die beiden Anzeigen für die aktuellen

Drehwinkel eingerichtet.

In der Methode Update() werden zunächst die Eingaben des Benutzers für

die Drehung um die beiden Achsen festgehalten. Es wird der neue Dreh-

winkel um die Z-Achse berechnet, der sich aus dem alten Drehwinkel und

der Eingabe des Benutzers ergibt. Bei der Begrenzung des Drehwinkels auf

maximal 7.5 Grad muss Folgendes beachtet werden:

Positiver

Drehwinkel

� Eine Drehung nach vorne oder nach links ergibt einen positiven Dreh-

winkel, zum Beispiel 5 Grad.

Negativer

Drehwinkel

� Eine Drehung nach hinten oder nach rechts ergibt einen negativen

Drehwinkel, zum Beispiel –5 Grad. Die entsprechende Komponente des

Vector3-Werts eulerAngles liefert für einen Drehwinkel von –5 Grad den

Wert 355 Grad, also 360–5 Grad.

Daher muss zunächst festgestellt werden, ob es sich um einen positiven

oder einen negativen Drehwinkel handelt. Anschließend kann bezüglich

des Grenzwerts geprüft werden:

Page 18: Einstieg in Unity – Ideal für Programmieranfänger · PDF fileprobe führt Sie durch den Unity-Editor und hilft Ihnen bei den ersten Schritten hin zu einem einfachen 2D-Spiel. Sie

10 Ein 3D-Balancer

220

Positiver

Grenzwert

� Falls der neue Drehwinkel im Bereich zwischen 0 und 180 Grad liegt und

den Grenzwert von 7.5 Grad überschreitet, wird der Winkel auf 7.5 Grad

gesetzt.

Negativer

Grenzwert

� Falls der neue Drehwinkel im Bereich zwischen 180 und 360 Grad liegt

und den Grenzwert von (360 – 7.5 =) 352.5 Grad unterschreitet, wird der

Drehwinkel auf 352.5 Grad gesetzt. Ebenso wird der neue Drehwinkel um

die X-Achse berechnet.

eulerAngles Aus den beiden neuen Drehwinkeln für X und Z wird der neue Vector3-

Wert für die Eigenschaft eulerAngles ermittelt; dann wird er zugewiesen.

Die beiden neuen Drehwinkel werden zur Kontrolle in den beiden Anzei-

gen ausgegeben. Sie werden mithilfe der Methode Format() auf eine Stelle

nach dem Komma formatiert.

Beispielansicht In Abbildung 10.3 sehen Sie die Platte und die beiden Anzeigen für den

Winkel, nachdem die Platte mithilfe der Taste (í) und der Taste (ë) bis zu

den Grenzwerten gedreht wurde und die Kugel daraufhin in die Ecke ge-

rollt ist. Die drei Anzeigen wurden zur Verdeutlichung kurzfristig in die

Nähe gesetzt.

Abbildung 10.3 Platte maximal gedreht

Ordnen Sie im Unity Editor das C#-Script dem Spielobjekt Platte zu, zie-

hen Sie die zwei Anzeigen für die Drehwinkel auf die zugehörigen Slots und

starten Sie das Spiel. Die Kugel fällt aufgrund der Schwerkraft auf die Platte.

Sie können die Platte um die beiden Achsen drehen. Allerdings rollt die Ku-

gel noch nicht. Dazu mehr im nächsten Abschnitt.

10.3.2 Bewegen Sie die Kugel und die Kamera

In diesem Abschnitt werden die beiden nachfolgenden Probleme gelöst:

10.3 Erstellen Sie den Spielablauf

221

Kein Rollen� Die Kugel rollt nur, falls die Platte bei ihrem Auftreffen bereits gedreht

ist.

Eindringen� Bewegen Sie die Kugel einmal an den hinteren Rand. Beim anschließen-

den schnellen Zurückkippen der Platte ist es möglich, dass die Kugel in

die Platte eindringt, siehe Abbildung 10.4.

Dieses unerwünschte Verhalten wird mithilfe von C# verhindert.

Abbildung 10.4 Die Kugel dringt in die Platte ein

Klasse »Spieler«Im Verzeichnis Scripts wird das Script-Asset mit der Klasse Spieler in der

Datei Spieler.cs erstellt. Die Klasse sieht zunächst wie folgt aus:

using UnityEngine;public class Spieler : MonoBehaviour{

public GameObject kamera;void Update(){

kamera.transform.position = new Vector3(0, 4, transform.position.z - 10);

}

void OnCollisionStay(Collision coll){

if (coll.gameObject.tag == "Platte"){

transform.position = new Vector3 (transform.position.x,transform.position.y + 0.001f, transform.position.z);

}}

}

Listing 10.2 Klasse »Spieler«, Kugel und Kamera bewegen

Neue TagsIm Unity Editor werden in der Liste Tags & Layers in der Inspector

View drei neue Tags eingeführt: Platte, Gewinn und Rand. Die beiden erstge-

Page 19: Einstieg in Unity – Ideal für Programmieranfänger · PDF fileprobe führt Sie durch den Unity-Editor und hilft Ihnen bei den ersten Schritten hin zu einem einfachen 2D-Spiel. Sie

10 Ein 3D-Balancer

222

nannten Tags werden den gleichnamigen Spielobjekten zugewiesen. Das

Tag Rand wird allen vier Rändern zugewiesen.

Kamera folgt in

Z-Richtung

Es wird ein öffentlich zugänglicher Verweis zur Kamera erzeugt. In der Me-

thode Update() wird die Z-Position der Kamera fortlaufend an die Z-Posi-

tion des Spielers angepasst. Zu Beginn steht der Spieler bei der Z-Position 0

und die Kamera bei der Z-Position –10. Diese Distanz in Z-Richtung wird

beibehalten.

Eindringen

verhindern

Bei einem vollständigen Kollisionsvorgang können nacheinander drei Me-

thoden aufgerufen werden: zu Beginn OnCollisionEnter(), im Verlauf On-

CollisionStay() und am Ende OnCollisionExit(). Achten Sie auch auf die

Namen der Methoden: Bei 2D-Projekten OnCollisionEnter2D(), bei 3D-Pro-

jekten OnCollisionEnter().

Im vorliegenden Fall wird die Methode OnCollisionStay() genutzt, um die

Y-Position der Kugel bei einem eventuellen, kurzzeitigen Verbleib in der

Platte um ein kleines Stück zu erhöhen. Das reicht aus, um das Eindringen

der Kugel in die Platte zu verhindern und somit auch das Rollen zu ermög-

lichen. Der Parameter ist vom Typ Collision und stellt einen Verweis auf

ein Objekt dar, das uns Daten zur Kollision liefern kann.

Testen Ordnen Sie im Unity Editor das C#-Script dem Spielobjekt Spieler zu, zie-

hen Sie die Kamera auf den zugehörigen Slot und starten Sie das Spiel. Die

Kugel dringt nicht mehr ein und rollt. Bei einer Bewegung in Z-Richtung

bewegt sich die Kamera mit.

10.3.3 Ändern Sie die Punktzahl

Falls Sie mit der Kugel den Würfel treffen, erhalten Sie einen Punkt. Nach

einem solchen Treffer erscheint der Würfel an einer anderen Stelle. Falls Sie

einen der Ränder treffen, wird Ihnen ein Punkt abgezogen. Sobald sich die

Kugel in Z-Richtung bewegt, also vom Benutzer weg- oder zum Benutzer

hinrollt, bewegt sich die Kamera mit.

Klasse »Spieler« Ergänzen Sie die Klasse Spieler wie folgt:

using UnityEngine;using UnityEngine.UI;public class Spieler : MonoBehaviour{

...public GameObject gewinn;

10.3 Erstellen Sie den Spielablauf

223

int punkte = 0;public Text punkteAnzeige;...void OnTriggerEnter(Collider coll){

if (coll.gameObject.tag == "Gewinn"){

punkte++;punkteAnzeige.text = "Punkte: " + punkte;gewinn.SetActive (false);Invoke ("NaechsterGewinn", 1);

}}

void NaechsterGewinn(){

gewinn.SetActive(true);gewinn.transform.localPosition = new Vector3(

Random.Range(-0.3f, 0.3f), 1.55f,Random.Range(-0.3f, 0.3f));

}

void OnCollisionEnter(Collision coll){

if (coll.gameObject.tag == "Rand"){

punkte--;punkteAnzeige.text = "Punkte: " + punkte;

}}...

}

Listing 10.3 Klasse »Spieler«, Punkte zählen

TriggerEine Kollision des Spielers mit dem Gewinn soll nur zum Punktezählen

führen, aber nicht zu einer Richtungsänderung des Spielers. Im Box Colli-

der des Gewinns wird daher die Markierung Is Trigger gesetzt. Eine Be-

rührung führt nun zu der Ereignismethode OnTriggerEnter(). Achten Sie

auch auf die Namen der Methoden: Bei 2D-Projekten OnTriggerEnter2D(),

bei 3D-Projekten OnTriggerEnter().

Page 20: Einstieg in Unity – Ideal für Programmieranfänger · PDF fileprobe führt Sie durch den Unity-Editor und hilft Ihnen bei den ersten Schritten hin zu einem einfachen 2D-Spiel. Sie

10 Ein 3D-Balancer

224

In der Klasse Spieler wird ein Punktezähler eingeführt und auf 0 gesetzt.

Zudem werden zwei öffentlich zugängliche Verweise zum Gewinn und zur

Punkte-Anzeige erzeugt.

Punktzahl erhöhen In der Methode OnTriggerEnter() wird geprüft, ob eine Berührung des Ge-

winns erfolgte. Ist das der Fall, wird die Punktzahl erhöht und neu ange-

zeigt. Der Gewinn wird deaktiviert und nach einer Sekunde in der Methode

NaechsterGewinn() wieder aktiviert. Seine relative Position auf der Platte

wird über die Eigenschaft localPosition mithilfe von zufälligen X- und

Z-Werten neu gesetzt.

Punktzahl

vermindern

Eine Kollision mit einem der Ränder führt zur Methode OnCollisionEnter()

und zu einer Verminderung der Punktzahl.

Testen Ziehen Sie den Gewinn und die Punkte-Anzeige auf die zugehörigen Slots,

und starten Sie das Spiel. Die Punkte-Anzeige ändert sich jetzt nach Berüh-

rungen des Gewinns und nach Kollisionen mit den Rändern.

10.3.4 Ideen für Ihre Erweiterungen

Einige Möglichkeiten für dieses Projekt:

� Ändern Sie die Größe und die rechteckige Form der Platte. Ändern Sie die

Größe der Kugel sowie die Anzahl und die Größe der Gewinn-Objekte.

� Setzen Sie die Platte aus einzelnen, unterschiedlichen rechteckigen Ele-

menten zusammen, sodass sich eine große Ebene ergibt. Die Elemente

werden alle gemeinsam auf einer Grundplatte angeordnet, jeweils mit

relativen Transform-Werten. Die Pfeiltasten führen zu einer Drehung

der Grundplatte und damit der gesamten Anordnung.

� Gehen Sie auf der Grundplatte in die dritte Dimension: Erstellen Sie mit-

hilfe von unterschiedlichen, teilweise gedrehten 3D-Cubes Rampen,

über die sich die Kugel auf eine höhere Ebene bewegen lässt, und Stufen,

über die die Kugel auf eine niedrigere Ebene herunterfällt.

� Platzieren Sie eine bestimmte Anzahl von Gewinn-Objekten an fest vor-

gegebenen Punkten; und führen Sie eine Zeitmessung ein. Der Benutzer

soll die Gewinn-Objekte in vorgegebener Reihenfolge in möglichst kur-

zer Zeit erreichen.

� Fügen Sie verschiedene Level und eine Highscore-Liste ein, siehe Ab-

schnitt 3.4.9.

Page 21: Einstieg in Unity – Ideal für Programmieranfänger · PDF fileprobe führt Sie durch den Unity-Editor und hilft Ihnen bei den ersten Schritten hin zu einem einfachen 2D-Spiel. Sie

Auf einen Blick

Auf einen Blick

Einführung ....................................................................................................... 17

1 Das erste 2D-Projekt ........................................................................... 24

2 Spielen Sie ein 2D-Jump&Run-Spiel ............................................. 38

3 Entwickeln Sie ein 2D-Jump&Run-Spiel ...................................... 47

4 Ein 2D-Breakout-Spiel ........................................................................ 93

5 Ein 2D-Spiel für zwei Spieler ............................................................ 127

6 Ein Gedächtnistrainer als 2D-Projekt ............................................ 146

7 Ein 2D-Space-Shooter ......................................................................... 164

8 Das erste 3D-Projekt ........................................................................... 184

9 Eine 3D-Animation .............................................................................. 200

10 Ein 3D-Balancer .................................................................................... 213

11 Ein 3D-Tetris .......................................................................................... 225

12 Ein Kopfrechentrainer als 3D-Projekt ........................................... 237

13 Golf spielen auf einem 3D-Terrain ................................................ 250

14 Jagen auf einem 3D-Terrain ............................................................. 275

15 Eine Schlange aus 3D-Joints ............................................................. 299

16 Ein Renntraining und ein Autorennen .......................................... 313

17 Erkunden Sie das Verlies ................................................................... 343

18 Ein Programmierkurs in C# ............................................................... 375

19 Speichern Sie eine Highscore-Liste ................................................ 414

20 Arbeiten Sie mit mehreren Szenen ................................................ 424

21 Weitere Plattformen .......................................................................... 431

Page 22: Einstieg in Unity – Ideal für Programmieranfänger · PDF fileprobe führt Sie durch den Unity-Editor und hilft Ihnen bei den ersten Schritten hin zu einem einfachen 2D-Spiel. Sie

Inhalt

5

Inhalt

Einführung ......................................................................................................................... 17

1 Das erste 2D-Projekt 24

1.1 Erstellung eines neuen Projekts ............................................................. 24

1.2 Wichtige Bereiche im Unity Editor ....................................................... 25

1.3 Das Spielobjekt »Main Camera« ............................................................ 27

1.4 Assets importieren ....................................................................................... 27

1.5 Spielobjekte einfügen ................................................................................ 28

1.6 Ändern der Hierarchie ................................................................................ 29

1.7 Eine Szene speichern ................................................................................... 30

1.8 Die Komponente »Transform« ............................................................... 31

1.8.1 Die Eigenschaften der Transform-Komponente .............. 31

1.8.2 Werte in der Inspector View ändern .................................... 32

1.9 Die Ansicht in der Scene View ................................................................. 34

1.9.1 Positionswerte mithilfe der Maus ändern ......................... 34

1.9.2 Rotationswerte mithilfe der Maus ändern ........................ 36

1.9.3 Scale-Werte mithilfe der Maus ändern ............................... 36

2 Spielen Sie ein 2D-Jump&Run-Spiel 38

2.1 Starten Sie das Spiel .................................................................................... 38

2.2 Wie geht das Spiel? ...................................................................................... 39

2.3 Unsere ersten Unity-Elemente ............................................................... 40

2.3.1 Assets .............................................................................................. 41

2.3.2 Spielobjekte .................................................................................. 43

Page 23: Einstieg in Unity – Ideal für Programmieranfänger · PDF fileprobe führt Sie durch den Unity-Editor und hilft Ihnen bei den ersten Schritten hin zu einem einfachen 2D-Spiel. Sie

Inhalt

6

3 Entwickeln Sie ein 2D-Jump&Run-Spiel 47

3.1 Erzeugen Sie Projekt und Assets ............................................................ 47

3.2 Fügen Sie Spielobjekte ein ....................................................................... 48

3.2.1 Erzeugen Sie das Spielfeld ....................................................... 48

3.2.2 Setzen Sie den Spieler auf den Boden ................................. 50

3.3 Erstellen Sie den Spielablauf ................................................................... 53

3.3.1 Führen Sie die Klasse »Spieler« ein ....................................... 53

3.3.2 Bewegen Sie den Spieler .......................................................... 55

3.3.3 Begrenzen Sie die Bewegung ................................................. 60

3.3.4 Treffen Sie den Gewinn ............................................................ 62

3.3.5 Vermeiden Sie die Gefahren ................................................... 65

3.3.6 Die geschweiften Klammern .................................................. 67

3.3.7 Die Gefahren bewegen sich .................................................... 68

3.4 Gestalten Sie die Benutzeroberfläche ................................................. 70

3.4.1 Erstellen Sie die erste Anzeige ................................................ 70

3.4.2 Sammeln Sie Punkte .................................................................. 72

3.4.3 Verlieren Sie Leben ..................................................................... 74

3.4.4 Messen Sie die Spielzeit ........................................................... 76

3.4.5 Speichern Sie Werte dauerhaft .............................................. 78

3.4.6 Geben Sie den Benutzern Hinweise ..................................... 80

3.4.7 Starten Sie ein neues Spiel ...................................................... 84

3.4.8 Beenden Sie die Anwendung .................................................. 87

3.4.9 Ideen für Ihre Erweiterungen ................................................. 89

3.5 Erzeugen Sie eine ausführbare Version .............................................. 89

3.6 Projekte umbenennen oder kopieren ................................................. 91

4 Ein 2D-Breakout-Spiel 93

4.1 Führen Sie das Spiel aus ............................................................................ 93

4.2 Erzeugen Sie Projekt und Assets ............................................................ 94

4.2.1 Fügen Sie ein Audio-Asset ein ................................................ 95

4.2.2 Erstellen Sie ein 2D-Material .................................................. 95

Inhalt

7

4.2.3 Lernen Sie 2D-Materialien kennen ....................................... 96

4.2.4 Erzeugen Sie ein Prefab ............................................................ 98

4.3 Fügen Sie Spielobjekte ein ....................................................................... 99

4.3.1 Füllen Sie das Spielfeld ............................................................. 99

4.3.2 Erzeugen Sie einen Ziegel ........................................................ 100

4.3.3 Wiederholen Sie den Vorgang ................................................ 101

4.3.4 Wiederholen Sie die Wiederholung ..................................... 103

4.4 Erstellen Sie den Spielablauf ................................................................... 104

4.4.1 Senden Sie den Ball ab .............................................................. 104

4.4.2 Bewegen Sie den Spieler .......................................................... 106

4.4.3 Sammeln Sie Punkte .................................................................. 107

4.4.4 Verlieren Sie Leben ..................................................................... 111

4.5 Gestalten Sie die Benutzeroberfläche ................................................. 114

4.5.1 Exportieren Sie ein Asset Package ........................................ 114

4.5.2 Importieren Sie ein Asset Package ........................................ 115

4.5.3 Passen Sie die Benutzeroberfläche an ................................. 116

4.5.4 Punkte, Leben und Infos anzeigen ........................................ 117

4.5.5 Messen Sie die Spielzeit ........................................................... 119

4.5.6 Zeigen Sie die vorherige Zeit an ............................................. 120

4.5.7 Starten Sie ein neues Spiel ...................................................... 122

4.5.8 Beenden Sie die Anwendung .................................................. 125

4.5.9 Ideen für Ihre Erweiterungen ................................................. 126

5 Ein 2D-Spiel für zwei Spieler 127

5.1 Führen Sie das Spiel aus ............................................................................ 127

5.2 Bereiten Sie das Spiel vor .......................................................................... 129

5.2.1 Erstellen Sie Projekt und Assets ............................................. 129

5.2.2 Erzeugen Sie Spielfeld und UI ................................................. 130

5.2.3 Positionieren Sie die Hindernisse .......................................... 132

5.3 Erstellen Sie den Spielablauf ................................................................... 134

5.3.1 Führen Sie den Aufschlag aus ................................................ 135

5.3.2 Bewegen Sie die Spieler vertikal ............................................ 136

5.3.3 Bewegen Sie die Spieler horizontal ...................................... 139

Page 24: Einstieg in Unity – Ideal für Programmieranfänger · PDF fileprobe führt Sie durch den Unity-Editor und hilft Ihnen bei den ersten Schritten hin zu einem einfachen 2D-Spiel. Sie

Inhalt

8

5.3.4 Sammeln Sie Punkte .................................................................. 141

5.3.5 Eine kleine Übung ....................................................................... 143

5.3.6 Ideen für Ihre Erweiterungen ................................................. 143

5.4 Künstliche Intelligenz ................................................................................. 144

6 Ein Gedächtnistrainer als 2D-Projekt 146

6.1 Führen Sie das Training aus ..................................................................... 146

6.2 Bereiten Sie das Training vor ................................................................... 147

6.2.1 Erzeugen Sie die Benutzeroberfläche .................................. 147

6.3 Das Training für drei Zahlen .................................................................... 148

6.3.1 Verteilen Sie die Zahlen ............................................................ 148

6.3.2 Vermeiden Sie doppelte Positionen ..................................... 151

6.3.3 Löschen Sie die Zahlen .............................................................. 153

6.3.4 Prüfen Sie die Reihenfolge ....................................................... 154

6.4 Die Erweiterung des Trainings ................................................................ 156

6.4.1 Machen Sie das Training leichter .......................................... 156

6.4.2 Machen Sie das Training schwerer ....................................... 158

6.4.3 Optimieren Sie das Training ................................................... 160

6.4.4 Ideen für Ihre Erweiterungen ................................................. 162

7 Ein 2D-Space-Shooter 164

7.1 Bereiten Sie das Spiel vor .......................................................................... 165

7.1.1 Gestalten Sie die beiden Explosions-Prefabs .................... 165

7.1.2 Erzeugen Sie Ihr Raumschiff und die Geschosse ............. 167

7.1.3 Erstellen Sie die anderen Raumschiffe ................................ 168

7.1.4 Gestalten Sie die Energieanzeige mit Layern .................... 169

7.1.5 Erstellen Sie die Benutzeroberfläche ................................... 169

7.2 Erstellen Sie den Spielablauf ................................................................... 170

7.2.1 Bewegen Sie Ihr Raumschiff und feuern Sie ..................... 170

7.2.2 Bewegen Sie die Geschosse nach dem Abfeuern ............ 172

7.2.3 Bewegen Sie die anderen Raumschiffe ............................... 173

Inhalt

9

7.2.4 Lassen Sie die Raumschiffe explodieren ............................. 175

7.2.5 Kollidieren Sie mit den anderen Raumschiffen ................ 177

7.2.6 Führen Sie weitere Änderungen der Energie herbei ....... 179

7.2.7 Messen Sie die Zeit, und beenden Sie das Spiel ............... 181

7.2.8 Eine kleine Übung ....................................................................... 182

7.2.9 Ideen für Ihre Erweiterungen ................................................. 183

8 Das erste 3D-Projekt 184

8.1 Grundlagen eines 3D-Projekts ................................................................ 184

8.1.1 Kamera, Skybox und Licht ........................................................ 184

8.1.2 Einfache 3D-Objekte .................................................................. 185

8.1.3 Meshes ........................................................................................... 187

8.1.4 Oberflächenmaterial erstellen und zuordnen .................. 187

8.1.5 Oberflächenmaterial wechseln ............................................. 188

8.1.6 Ansicht in der Scene View gestalten .................................... 189

8.2 Verschieben und Drehen ........................................................................... 190

8.2.1 Spielobjekte drehen ................................................................... 190

8.2.2 Animiert verschieben ................................................................ 193

8.2.3 Kamera bewegen ........................................................................ 195

8.2.4 Animiert drehen .......................................................................... 196

8.2.5 Übersicht ....................................................................................... 199

9 Eine 3D-Animation 200

9.1 Schaffen Sie die Voraussetzungen ....................................................... 200

9.1.1 Betrachten Sie die fertige Animation .................................. 200

9.1.2 Bauen Sie das Beispiel auf ....................................................... 201

9.2 Erstellen Sie die Animation ...................................................................... 202

9.2.1 Legen Sie die Animation an ..................................................... 202

9.2.2 Drehen Sie das rechte Bein ...................................................... 203

9.2.3 Erstellen Sie weitere Keyframes ............................................ 205

9.2.4 Stellen Sie die Keyframes ein .................................................. 205

9.2.5 Verschieben Sie das rechte Bein ............................................ 206

Page 25: Einstieg in Unity – Ideal für Programmieranfänger · PDF fileprobe führt Sie durch den Unity-Editor und hilft Ihnen bei den ersten Schritten hin zu einem einfachen 2D-Spiel. Sie

Inhalt

10

9.3 Arbeiten Sie mit dem Animator Controller ....................................... 207

9.3.1 Gestalten Sie die States ............................................................ 207

9.3.2 Erstellen Sie die Parameter ..................................................... 208

9.3.3 Erzeugen Sie die Transitionen ................................................ 209

9.4 Fügen Sie das C#-Script hinzu ................................................................. 210

9.4.1 Verbinden Sie Bewegung und Animation .......................... 210

9.4.2 Vervollständigen Sie die Animation ..................................... 211

9.4.3 Ideen für Ihre Erweiterungen ................................................. 212

10 Ein 3D-Balancer 213

10.1 Führen Sie das Spiel aus ............................................................................ 213

10.2 Bereiten Sie das Spiel vor .......................................................................... 214

10.2.1 Erzeugen Sie Projekt und Assets ............................................ 214

10.2.2 Erzeugen Sie Spielfeld und UI ................................................. 215

10.2.3 Relative Transform-Werte ....................................................... 216

10.3 Erstellen Sie den Spielablauf ................................................................... 218

10.3.1 Drehen Sie die Platte ................................................................. 218

10.3.2 Bewegen Sie die Kugel und die Kamera .............................. 220

10.3.3 Ändern Sie die Punktzahl ......................................................... 222

10.3.4 Ideen für Ihre Erweiterungen ................................................. 224

11 Ein 3D-Tetris 225

11.1 Führen Sie das Spiel aus ............................................................................ 225

11.2 Bereiten Sie das Spiel vor .......................................................................... 226

11.2.1 Erzeugen Sie Projekt und Assets ............................................ 226

11.2.2 Erzeugen Sie Spielfeld und UI ................................................. 227

11.2.3 Erstellen Sie das Würfel-Prefab ............................................. 228

11.3 Erstellen Sie den Spielablauf ................................................................... 228

11.3.1 Bewegen Sie die Würfel ........................................................... 228

11.3.2 Eine »generische Liste« ............................................................. 230

11.3.3 Fügen Sie Elemente zur Liste hinzu ...................................... 231

11.3.4 Entfernen Sie Elemente aus der Liste .................................. 233

Inhalt

11

11.3.5 Eine kleine Übung ....................................................................... 236

11.3.6 Ideen für Ihre Erweiterungen ................................................. 236

12 Ein Kopfrechentrainer als 3D-Projekt 237

12.1 Führen Sie das Training aus ..................................................................... 237

12.2 Bereiten Sie das Training vor ................................................................... 238

12.3 Erstellen Sie den Trainingsablauf .......................................................... 239

12.3.1 Erzeugen Sie die Aufgabe und die Lösungen .................... 239

12.3.2 Mischen Sie die Lösungen ........................................................ 242

12.3.3 Sammeln Sie Punkte .................................................................. 244

12.3.4 Verlieren Sie Leben ..................................................................... 246

12.3.5 Ideen für Ihre Erweiterungen ................................................. 249

13 Golf spielen auf einem 3D-Terrain 250

13.1 Führen Sie das Spiel aus ............................................................................ 250

13.2 Bereiten Sie das Spiel vor .......................................................................... 251

13.2.1 Erzeugen Sie Projekt und Landschaft ................................... 252

13.2.2 Weisen Sie der Landschaft eine Textur zu ......................... 252

13.2.3 Erstellen Sie die drei Ebenen ................................................... 254

13.2.4 Fügen Sie den Rand hinzu ........................................................ 256

13.2.5 Erstellen Sie die beiden Rampen ........................................... 258

13.2.6 Setzen Sie Spieler und Ziel in die Landschaft .................... 259

13.2.7 Arbeiten Sie mit einem Physic Material .............................. 260

13.3 Erstellen Sie den Spielablauf ................................................................... 261

13.3.1 Schlagen Sie den Spielball ....................................................... 261

13.3.2 Versetzen Sie das Ziel ................................................................ 264

13.3.3 Vermeiden Sie den Verlust des Spielballs .......................... 266

13.3.4 Ideen für Ihre Erweiterungen ................................................. 267

13.4 Ein weiteres Terrain ..................................................................................... 268

13.4.1 Erzeugen Sie zehn Ebenen ....................................................... 269

13.4.2 Fügen Sie den linken und den rechten Rand hinzu ......... 270

13.4.3 Fügen Sie den unteren und den oberen Rand hinzu ...... 270

Page 26: Einstieg in Unity – Ideal für Programmieranfänger · PDF fileprobe führt Sie durch den Unity-Editor und hilft Ihnen bei den ersten Schritten hin zu einem einfachen 2D-Spiel. Sie

Inhalt

12

13.4.4 Erzeugen Sie die erste Rampe ................................................ 271

13.4.5 Erstellen Sie alle Rampen links ............................................... 272

13.4.6 Erstellen Sie alle Rampen rechts ............................................ 273

13.4.7 Setzen Sie die Positionen ......................................................... 274

14 Jagen auf einem 3D-Terrain 275

14.1 Führen Sie das Spiel aus ............................................................................ 275

14.2 Bereiten Sie das Spiel vor .......................................................................... 278

14.2.1 Erzeugen Sie Projekt und Landschaft ................................... 278

14.2.2 Steuern Sie den Zufall ............................................................... 278

14.2.3 Erzeugen Sie die weiteren Spielobjekte .............................. 282

14.2.4 Erstellen Sie die drei Prefabs ................................................... 283

14.2.5 Zoomen Sie mithilfe eines Sliders ......................................... 284

14.3 Erstellen Sie den Spielablauf ................................................................... 287

14.3.1 Bewegen Sie den Jäger ............................................................. 287

14.3.2 Treffen Sie die Ziele .................................................................... 289

14.3.3 Die Ziele starten eine Abwehr ................................................ 292

14.3.4 Die Abwehr wird gefährlich .................................................... 293

14.3.5 Messen Sie die Zeit ..................................................................... 296

14.3.6 Ideen für Ihre Erweiterungen ................................................. 297

15 Eine Schlange aus 3D-Joints 299

15.1 Führen Sie das Spiel aus ............................................................................ 299

15.2 Bereiten Sie das Spiel vor .......................................................................... 300

15.2.1 Erzeugen Sie die Assets und die Platte ................................ 300

15.2.2 Erstellen Sie die Schlange und ihre Beute .......................... 301

15.2.3 Stellen Sie die gelenkigen Verbindungen her ................... 302

15.3 Erstellen Sie den Spielablauf ................................................................... 303

15.3.1 Bewegen Sie die Schlange ....................................................... 304

15.3.2 Treffen Sie die Beute ................................................................. 305

15.3.3 Verkürzen Sie die Schlange ..................................................... 306

15.3.4 Zählen Sie die Punkte ................................................................ 308

Inhalt

13

15.3.5 Die Segmente treffen den Rand ............................................ 309

15.3.6 Messen Sie die Zeit ..................................................................... 310

15.3.7 Ideen für Ihre Erweiterungen ................................................. 312

16 Ein Renntraining und ein Autorennen 313

16.1 Führen Sie das Renntraining aus ........................................................... 313

16.2 Führen Sie das Autorennen aus ............................................................. 315

16.3 Bereiten Sie das Renntraining vor ........................................................ 317

16.3.1 Erzeugen Sie das Projekt und die Fahrbahn ...................... 317

16.3.2 Konstruieren Sie das Fahrzeug ............................................... 318

16.3.3 Fügen Sie die Wheel Collider hinzu ...................................... 319

16.4 Erstellen Sie den Ablauf des Renntrainings ...................................... 321

16.4.1 Beschleunigen Sie das Fahrzeug ........................................... 321

16.4.2 Lenken Sie das Fahrzeug .......................................................... 322

16.4.3 Folgen Sie dem Fahrzeug mit der Kamera ......................... 324

16.4.4 Bauen Sie die Begrenzungen auf ........................................... 326

16.4.5 Eine »Lichtschranke« an der Startlinie ................................ 328

16.4.6 Messen Sie die Rundenzeiten ................................................. 330

16.5 Erweitern Sie das Renntraining zum Autorennen ......................... 332

16.5.1 Erzeugen Sie das zweite Fahrzeug ........................................ 332

16.5.2 Steuern Sie die Fahrzeuge getrennt ..................................... 334

16.5.3 Teilen Sie den Bildschirm auf ................................................. 336

16.5.4 Eine dritte Kamera für den Überblick .................................. 337

16.5.5 Getrennte Rundenzeiten nach einem Countdown ......... 338

16.5.6 Ideen für Ihre Erweiterungen ................................................. 342

17 Erkunden Sie das Verlies 343

17.1 Führen Sie das Spiel aus ............................................................................ 343

17.1.1 Der Ablauf des Spiels ................................................................. 344

17.2 Bereiten Sie das Spiel vor .......................................................................... 347

17.2.1 Die Planung des Verlieses ........................................................ 347

17.2.2 Der Aufbau einer Kammer ...................................................... 348

Page 27: Einstieg in Unity – Ideal für Programmieranfänger · PDF fileprobe führt Sie durch den Unity-Editor und hilft Ihnen bei den ersten Schritten hin zu einem einfachen 2D-Spiel. Sie

Inhalt

14

17.2.3 Erstellen Sie die ersten Spielobjekte .................................... 350

17.2.4 Bauen Sie das Prefab für die Kammer ................................ 351

17.2.5 Die Schlüssel, Kisten und Sperren ......................................... 353

17.2.6 Gestalten Sie die Benutzeroberfläche ................................. 355

17.3 Erstellen Sie den Spielablauf ................................................................... 356

17.3.1 Folgen Sie dem Spieler mit der Kamera .............................. 356

17.3.2 Erstellen Sie alle Kammern ...................................................... 358

17.3.3 Konfigurieren Sie die Kammern ............................................ 360

17.3.4 Gehen Sie durch ein Tor ........................................................... 362

17.3.5 Nehmen Sie den Schlüssel aus einer Schatzkiste ............ 365

17.3.6 Schließen Sie eine Sperre auf ................................................. 369

17.3.7 Speichern Sie den Spielstand .................................................. 371

17.3.8 Laden Sie den alten Spielstand .............................................. 372

17.3.9 Ideen für Ihre Erweiterungen ................................................. 374

18 Ein Programmierkurs in C# 375

18.1 Das Unity-Projekt »Programmierkurs« .............................................. 375

18.2 Grundlagen ...................................................................................................... 377

18.2.1 Variablen und Datentypen ...................................................... 377

18.2.2 Rechenoperatoren ...................................................................... 379

18.2.3 Division von ganzen Zahlen .................................................... 381

18.2.4 Verzweigungen ........................................................................... 382

18.2.5 Logische Verknüpfungen ......................................................... 384

18.2.6 Schleifen und Zufallszahlen .................................................... 386

18.3 Datenfelder ..................................................................................................... 390

18.4 Zeichenketten ................................................................................................ 394

18.5 Methoden ......................................................................................................... 396

18.5.1 Einfache Methode ...................................................................... 396

18.5.2 Methode mit Parametern ........................................................ 397

18.5.3 Methode mit Rückgabewert ................................................... 398

18.5.4 Methode mit Verweis-Parameter ......................................... 400

18.6 Generische Listen .......................................................................................... 401

18.6.1 Hilfsmethode »AusgabeListe()« ............................................. 403

18.6.2 foreach-Schleife .......................................................................... 404

Inhalt

15

18.7 Daten auf der Festplatte ........................................................................... 404

18.7.1 Daten speichern .......................................................................... 405

18.7.2 Daten laden .................................................................................. 406

18.7.3 Kontrolle der Daten ................................................................... 407

18.8 Objektorientierung ...................................................................................... 408

18.8.1 Die Spielobjekte im Unity Editor ........................................... 409

18.8.2 Die Klasse »Spieler« ................................................................... 409

18.8.3 Änderungen aller Objekte der Klasse .................................. 411

18.8.4 Änderungen einzelner Objekte .............................................. 412

19 Speichern Sie eine Highscore-Liste 414

19.1 Definition der eigenen Klasse ................................................................. 414

19.2 Nutzung der eigenen Klasse .................................................................... 416

19.2.1 Generische Liste erzeugen und füllen ................................. 416

19.2.2 Generische Liste anzeigen ....................................................... 418

19.2.3 Einen neuen Eintrag hinzufügen ........................................... 419

19.2.4 Alles speichern, alles löschen ................................................. 421

19.2.5 Der Anzeige-Schalter ................................................................. 422

20 Arbeiten Sie mit mehreren Szenen 424

20.1 Der Ablauf des Projekts ............................................................................. 424

20.2 Der Aufbau der ersten Szene ................................................................... 425

20.2.1 Die Klasse »Spieler« ................................................................... 425

20.3 Weitere Szenen ............................................................................................. 429

21 Weitere Plattformen 431

21.1 Installieren Sie Unity unter macOS Sierra ......................................... 431

21.2 Erstellen Sie eine Browser-Anwendung ............................................. 433

Page 28: Einstieg in Unity – Ideal für Programmieranfänger · PDF fileprobe führt Sie durch den Unity-Editor und hilft Ihnen bei den ersten Schritten hin zu einem einfachen 2D-Spiel. Sie

Inhalt

16

21.3 Erstellen Sie eine Android-App ............................................................... 434

21.3.1 Änderungen im Code ................................................................ 435

21.3.2 Weitere Komponenten und Anwendungen ...................... 436

21.3.3 Stellen Sie die Player Settings ein ......................................... 438

21.3.4 Führen Sie den Android-Build durch .................................... 439

21.3.5 Starten Sie die App unter Android ........................................ 440

21.4 Bereiten Sie eine iOS-App vor ................................................................. 440

21.4.1 Eine weitere Komponente ....................................................... 440

21.4.2 Führen Sie den iOS-Build durch ............................................. 441

Index .................................................................................................................................... 442

Page 29: Einstieg in Unity – Ideal für Programmieranfänger · PDF fileprobe führt Sie durch den Unity-Editor und hilft Ihnen bei den ersten Schritten hin zu einem einfachen 2D-Spiel. Sie

Index

442

Index

- 379

-- 113

! 69, 384

!= 61, 383

(float) 382

(int) 380

[ ] 150, 231, 391

{ } 53, 61, 67

* 379

*= 175, 380

/ 379

/* */ 58, 379

// 58, 379

/= 380

&& 69, 384

% 109, 379

%= 380

+ (Addition) 379

+ (Verkettung) 73, 378

++ 102, 388

+= 178, 380

< 61, 383

<= 61, 383

-= 380

== 61, 383

> 61, 383

>= 61, 383

|| 69, 384

16 zu 9 38

einstellen 51

2D 17

2D-Collider 51

2D-Material 95

zuordnen 98

2D-Projekt 24

3D 17

3D-Material 260

3D-Objekt, einfach 185

3D-Projekt 184

A

Achse

Benutzereingabe 58

Achse, Benutzereingabe 334

activeInHierarchy 369

activeSelf 172

Add

Component 50

Keyframe 205

Property 204

Tag 62

Textures 253

Add() 230, 233, 402

AddForce() 106

Addition 379

AddTorque() 191

Adventure 343

Albedo 187

Algorithmus 144

Alignment 81

Allradantrieb 322

Alpha-Wert 117

Alt Negative Button 334

Alt Positive Button 334

Anchor Presets 71

Android Package 439

Android SDK 436

Android SDK Manager 437

Android-App 434

Anführungsstriche 378

Angular Drag 191

Animation 200, 362

Aufzeichnung 206

Bedingung 209

Drehung 197

erstellen 203

Keyframe 204

Parameter 208

Parameter ändern 211

State hinzufügen 208

Transition 207

Transition erstellen 209

Verschiebung 193

Animation 200, 362 (Forts.)

Zeitskala 204

Zustand 207

Animation View 202

Animator Controller 203, 207

Anweisung 54

einzeln 67, 104, 383

lang 70

Anweisungsblock 61, 67

Anwendung beenden 87

Anzeige erstellen 70

APK 439

Application.Quit() 88

Array 149

Asset 25

importieren 27, 47

übernehmen 114

verschieben 48

Asset Package 114

Asset Store 22

AudioClip 109

Audio-Datei 95

abspielen 109

AudioListener entfernen 336

AudioSource 109

Aufprallverhalten 96, 261

Aufzählung 136

ausführbares Programm 38

Ausrichtung 81

Autorennen 313

B

Backbord 314

Balancer 213

Bedingung 61, 382

Beleuchtung 184

Benutzer-Eingabe 58, 136, 171

Benutzeroberfläche 45

erstellen 70

Beschleunigung 106

Drehmoment 322

Reibung 319

Index

443

Beschleunigung 106 (Forts.)

Sensor 435

Betrag 106, 111

Bildaufbau 55, 57

Bildschirmauflösung 38

bool 56, 377

Wert speichern 372

boolesche Variable 56, 377

Bounciness 96, 261

Box Collider 2D 43

hinzufügen 51

break 152, 390

Breakout 93

Browser-Anwendung 433

Build

Android 439

iOS 441

WebGL 434

Windows 90

Build Settings 90

löschen 429

mehrere Szenen 429

Reihenfolge 430

Build Support 20

Bundle Identifier 438

C

C# Script � Script

camelCase 57, 379

Canvas 70

Capsule 185

Cast 380, 382

Objekt 233

CheckBox 422

Children 30

Circle Collider 2D 51

class 54

Code speichern 59

Collider 43

ändern 52

Collision 222

Collision2D 63

Color 71

Conditions 209

Connected Body 303

Console View 25

Ausgabe 110

Constraints 227

Contains() 230

Convert 155, 246, 395

Count 231, 403

Countdown 339

Create Project 24

Cube 185

Curves 204

cw-Wert 313

Cylinder 186

D

Dämpfung 319

Dateiendung 19

Datenfeld 149, 390

an Methode 400

Dimensionsgröße 393

Größe 392

mischen 243

Datenkapselung 415

Datentyp 56, 377

generisch 230

umwandeln 155, 380, 395

Debug.Log() 110

Default Layer 169

Default State 208

Deklaration 57, 378

Datenfeld 150

mehrere 133

Depth 338

Destroy()

Komponente 307

Spielobjekt 109

Dezimalpunkt 33, 378

Directional Light 185

Division 379

ganzzahlig 381

do while 134, 386

Dokumentation 21

Dopesheet 204

double 378

Download Assistant

macOS 431

Windows 20

Drag 227

Nachteil 248

drehen

animiert 197

Kamera 195

Scene View 189

Spielobjekt 36, 190

Drehmoment 191, 322

zuordnen 192

Drehrichtung 192

Drehung � Rotation

Drehwiderstand 191

Drehwinkel 198, 219

dreidimensional 17

Dreieck 187

Dynamic Friction 261

E

Edit Collider 52

Eigenschaft

Klasse 55, 57, 408

öffentlich 159

statisch 58

Eingabe 58, 136, 171

Eingabefeld 420

elastischer Stoß 97

Element-Datenfeld 149

else 66, 382

else if 66

Endung 19

Energieanzeige 165

Entwicklungsumgebung 25

Enumeration 136

Ereignismethode 63, 86

error 59

eulerAngles 198, 219

EventSystem 46, 70

Exit Time 209

F

Fahrzeug 313

beschleunigen 322

lenken 323

false 56, 377

Page 30: Einstieg in Unity – Ideal für Programmieranfänger · PDF fileprobe führt Sie durch den Unity-Editor und hilft Ihnen bei den ersten Schritten hin zu einem einfachen 2D-Spiel. Sie

Index

444

Farbe einstellen 71

Federung 319

Fehlermeldung 59

Fett 80

Find() 307, 361

Fire1 334

Fire2 334

Fließkommazahl 56, 377

float 56, 377

fokussieren, Scene View 34

Font Size 80

Font Style 80

for 102, 386

foreach 404

Formatierung 77, 395

Freeze Rotation 227

Freie Assets 22

Friction 96, 260

G

Game View 25

einstellen 51

GameObject 63

gameObject 64, 66

ganzzahlige Division 109

Gedächtnistrainer 146

Gelenk 302

generische Liste 230, 401

generische Methode 105

Geschwindigkeit

Betrag 110

erhöhen 110

GetActiveScene() 427

GetComponent() 105

GetComponentInChildren()

154

GetMouseButtonDown() 263

GetMouseButtonUp() 263

GetUpperBound() 393

Gizmo 186

gleich 61, 383

Global 35

Glühbirne 185

Golf 250

Gravity Scale 50

größer als 61, 383

H

Has Exit Time 209

Hebelarm 191

Height 71

Hierarchie, Objekt

unterordnen 29

Hierarchy View 25

Highscore speichern 414

Hinge Joint 302

Hintergrund 184

Horizont 184

Horizontal (Achse) 58

I

if 61, 382

Index 149, 391

nicht erlaubt 151

IndexOf() 231

Input 58

acceleration 435

GetAxis() 58

GetButtonDown() 171

GetKey() 138

GetKeyDown() 136

Input Field 420

InputManager 58, 171, 334

Insert() 231, 402

Inspector View 25, 31

Wert ändern 33

Installation

Komponente 20, 90

macOS 431

Windows 19

Instantiate() 101

int 56, 377

Invoke() 66

iOS-App 440

Is Trigger 167

isometrisch 189

isOn 423

J

Java Development Kit 437

JDK 437

Joint 302

Jump & Run 38

K

Kachel 253

Kamera 27

Ausschnitt 336

Bild über Bild 338

drehen 195

folgt Spielobjekt 286, 324

mehrere 316, 336

Richtung 325

verschieben 195

zoomen 284

Kapsel 185

KeyCode 136

Keyframe 204

KI 144

Klammer, geschweift 53, 61, 67

Klasse 54

Definition 408

eigene 414

mehrfach zuordnen 69

zuordnen 55

kleiner als 61, 383

Kollision

bemerken 63, 222

Trigger 167

Verhalten 95, 260

Kommentar 57, 379

Komponente

Box Collider 2D 43

entfernen 52

hinzufügen 50

Menü 48, 52, 301

Rect Transform 45, 71

Rigidbody 191

Rigidbody 2D 43

Script 43

Text (Script) 71

Transform 31

Unity 20, 432

verschieben 52

zerstören 307

Zugriff 105, 154

Konstante 136

Index

445

Konstruktor 59, 415

nutzen 417

Kontrollausgabe 110

Koordinatenachse 31, 186

Kopfrechnen 237

Kraft 106

Kraft mal Hebelarm 191

Kugel 185

Künstliche Intelligenz 144

L

Laden von Festplatte 79, 405

Landschaft 250

Layer 169

Layout, Unity Editor 26

Length 392

lenken 323

Lenkwinkel 323

Level 424

Licht 184

Lichtschranke 328

linke Hand 192

Linke-Hand-Regel 32, 186

List < > 232, 402

Liste 230

LoadScene() 428

Local 35

localEulerAngles 323

localScale 178

logischer Wert 56, 377

logisches Nicht 69, 384

logisches Oder 69, 384

logisches Und 69, 384

lokale Variable 57

LookAt() 325

Luftwiderstand 227

M

macOS, Installation Unity 431

magnitude 110

Main Camera 27

Manual 21

Masse 318

material 189

Material, Oberfläche 187

Maus-Position 263

Maustaste

nach oben 263

nach unten 263

Mesh 187

Methode 396

Aufruf 66, 397

Definition 396

Ereignis 63, 86

generisch 105

Klasse 55, 408

öffentlich 86

Parameter 397

Rückgabe Objekt 420

Rückgabewert 398

zeitverzögert 66

Modularisierung 396

Modulo 109, 379

Mono Develop 53

schließen 55

MonoBehaviour 54, 408

motorTorque 322

mousePosition 263

Multiplikation 379

N

Name

Konvention 57, 379

Regel 56, 378

Namensraum 54, 376

Konflikt 246

namespace 54

Navigation 284, 356

Negative Button 334

new

List 232, 402

Objekt 59

None 114, 284, 356

Nullpunkt 59

O

Oberflächenmaterial 187

wechseln 188

Objekt

erzeugen 59

klonen 101

Startwerte 79

Verweis 63

Objektorientierung 408

OnClick() 87

OnCollisionEnter() 222, 224

OnCollisionEnter2D() 63

OnCollisionExit() 222

OnCollisionStay() 222

OnTriggerEnter() 223

OnTriggerEnter2D() 167

OnValueChanged

Slider 286

Toggle 423

Operator

logisch 69, 384

Rechen- 379

Reihenfolge 380

Vergleich 61, 383

Verknüpfung 69, 384

Order in Layer 169

Orientierung 435

Ortsvektor 59

P

Package

exportieren 114

importieren 115

Parameter

Animation 208

Methode 397

Parenting 30

Partikelsystem 165, 283

Personal Edition 18

perspektivisch 186

Physic Material 260

Physics 191

Physics 2D 50

Physics2D Material 95

Placeholder 420

PlayClipAtPoint() 109

Player Settings 91, 438

PlayerPrefs

DeleteAll() 405

Page 31: Einstieg in Unity – Ideal für Programmieranfänger · PDF fileprobe führt Sie durch den Unity-Editor und hilft Ihnen bei den ersten Schritten hin zu einem einfachen 2D-Spiel. Sie

Index

446

PlayerPrefs (Forts.)

GetFloat() 79, 405

GetInt() 405

GetString() 405

HasKey() 79, 405

Save() 79, 405

SetFloat() 79, 404

SetInt() 404

SetString() 404

Point Light 185

Polygon Collider 2D 52

Pong 127

Position 31

ändern 59

begrenzen 61

relativ 217

UI-Element 71

Positive Button 334

Prefab 98

erstellen 98

instanziieren 101

Prefab-Asset 98

Professional Edition 18

Programmierkurs 375

Programmierumgebung 53

Project Settings 58

Project View 25

Verzeichnis 41

Projekt

ausführbare Version 89

Einstellungen 58

erstellen 24, 184

kopieren 92

öffnen 40

Skizze 348

testen 47

Titelzeile 91

umbenennen 91

Projektverzeichnis 22

public

Eigenschaft 159

Klasse 54

Methode 86

Objekt 63

Punkt, Schreibweise 59

Q

Quaternion 101

identity 101

Querbeschleunigung 319

R

Rad 319

Random.Range() 388

Fließkommazahl 64

ganze Zahl 150

Raumschiff 164

Rechenoperator 379

Rect Transform 45, 71

ändern 150

Reibung 96, 260

Re-Import 23

Remove() 231

RemoveAt() 231, 403

Liste 236

Rennen 313

Rest 109, 379

return 61, 399

Richtung 106, 111

Richtungsvektor 106, 110

Rigidbody 191

Masse 318

Rigidbody 2D 43

beschleunigen 106

Geschwindigkeit 110

hinzufügen 50

Rotate() 196

RotateAround() 196

Rotation 32

Objekt 101

relativ 323

verhindern 227

Rückgabewert 398

Rückgängig machen 30

S

Scale 32

ändern 178

relativ 217

Scene 427

Scene View 25

ändern 34, 189

SceneManager 426

Schaltfläche

Aufschrift 85

Ereignis verbinden 86

erstellen 84

Scharniergelenk 302

Scheinwerfer 185

Schieberegler 284

Schlange 299

Schleife 102, 134, 386

abbrechen 152, 390

abwärts 235

foreach 404

geschachtelt 103

Variable 102

Schlüsselwort 379

Schriftfarbe 71

Schriftgröße 80

Schriftstil 80

Schwerkraft

2D 50

3D 191

Script

erstellen 53

Name 53

Script-Asset 43

Scripting Reference 21

Script-Komponente

hinzufügen 55

Seitenverhältnis 51

SetActive() 66

SetBool() 211

SetHeights() 256

Skalieren eines Spielobjekts 37

Skybox 184

Slider 284

wechselt Wert 286

Slot 64

verbinden 64, 74

Snake 299

Sorting Layer 169

Space Shooter 164

Speichern auf Festplatte 78,

404

Sphere 185

Index

447

Spiel

Anreize 38

beenden 51, 87

starten 51

Spielfeld vergrößern 51

Spielobjekt

aktivieren 66

aktiviert 172

als Verzeichnis 30

animieren 203

bewegen 141

Bezugspunkt 303

deaktivieren 66

drehen 36, 190

einfügen 28

entfernen 49

Existenz prüfen 369

finden 307

gemeinsame Werte 50

gleichartig 98

gruppieren 44

hintereinander 169

kopieren 49, 74

kopieren mit Bezügen 333

markieren 43

Name 44

übergeordnet 29

untergeordnet finden 361

unterordnen 29

verbinden 303

vergrößern 36

verkleinern 36

verschieben 35, 59, 193

zerstören 109

zerstört sich 294

Split Screen 336

Spot Light 185

Sprite 27

wechseln 427

sprite 427

Sprite Renderer 28

Sprite-Asset 42

SpriteRenderer 427

Sprites/Default 28

Start() 79

State 207

Static Friction 261

statisch 58

Statuszeile 110

steerAngle 323

Steuerbord 314

string 56, 377

Format() 77, 395

Substring() 155, 394

Substring() 155, 394

Subtraktion 379

Symbolleiste 34

System

Collections.Generic 232

Convert 155, 246

Szene

kopieren 429

Regeln 429

speichern 30

wechseln 424

T

Tag 44

hinzufügen 62

tag 64

Tags & Layers 62

Taktik 277

Taste

ist unten 138

nach unten 136

nicht reagieren 284, 356

virtuell 171

WASD 314, 334

Teilbarkeit 109

Teilzeichenkette 155

Terrain 250

Höhe 252

Höhe zuweisen 256

Textur 252

terrainData 255

Test 47

Tetris 225

text

Input Field 420

Textelement 73

Text � Zeichenkette

Textfeld erstellen 70

Textur 252

Tiling-Textur 253

Time

deltaTime 57

time 77

Toggle 422

ToInt32() 155, 395

Tor öffnen 362

torque 322

Touch-Oberfläche 435

Transform 31

relativ 217

zurücksetzen 48

transform position 59

Transition 207

Translate() 141, 196

Transparenz einstellen 117

Trigger 167

true 56, 377

U

UI 45

Position 71

ungleich 61, 383

Unity Editor 25

Unity-Account 22

UnityEngine 54

SceneManagement 426

UnityEngine.UI 73

unitypackage 114

Untagged 62

Untereigenschaft 59

Update() 55

Use Gravity 191

user interface 45

using 54

V

value-Slider 286

Variable 56, 377

Gültigkeit 57

Vector2 106

Vector3 59

Vektor 59, 106, 110

velocity 110

Vererbung 54, 408

Page 32: Einstieg in Unity – Ideal für Programmieranfänger · PDF fileprobe führt Sie durch den Unity-Editor und hilft Ihnen bei den ersten Schritten hin zu einem einfachen 2D-Spiel. Sie

Index

448

Vergleichsoperator 61, 383

Verkettungsoperator 378

Verknüpfung, sinnlos 386

Verknüpfungsoperator 69, 384

Verlies 343

verschieben

animiert 193

Asset 48

Kamera 195

Scene View 34, 189

Spielobjekt 35, 59, 193

Version 23

Vertical (Achse) 58

Verweis

auf andere Klasse 113

Datenfeld 149

Komponente 105

Objekt 63

öffentlich 63

umwandeln 233

Verweistyp 401

Verzeichnis 41

Verzeichnis erstellen

Hierarchy View 48

Project View 47

Verzweigung 61, 382

mehrfach 66, 384

View 25

Viewport Rect 336

void 399

W

Wahrheitswert 56, 377

WASD-Tasten 314, 334

WebGL 433

Werttyp 401

Wheel Collider 314, 319

Width 71

Wiederholung 102, 386

Winkel 198, 219

Würfel 185

X

X-Achse 31

Xcode 440

Y

Y-Achse 32

Z

Z-Achse 32

Zahl

ganz 56, 377

mit Nachkommastellen 56,

377

Zahnrad

Menü 52, 301

Zahnrad-Menü 48

Zeichenkette 56, 377

formatieren 77, 395

Teilzeichenkette 155, 394

verketten 73

Zeit messen 76

Zeitskala-Animation 204

zoomen

Scene View 189

zoomen, Scene View 34

Zufallszahl 64, 386

Zugriffsmodifizierer 54

Zuordnung lösen 113

Zuweisung 378

kombiniert 380

Reihenfolge 159

zweidimensional 17

Zylinder 186

Page 33: Einstieg in Unity – Ideal für Programmieranfänger · PDF fileprobe führt Sie durch den Unity-Editor und hilft Ihnen bei den ersten Schritten hin zu einem einfachen 2D-Spiel. Sie

Thomas Theis

Einstieg in Unity – Ideal für Programmieranfänger448 Seiten, broschiert, in Farbe, Februar 2017 29,90 Euro, ISBN 978-3-8362-4292-9

www.rheinwerk-verlag.de/4211

Wir hoffen sehr, dass Ihnen diese Leseprobe gefallen hat. Sie dürfen sie gerne empfehlen und weitergeben, allerdings nur vollständig mit allen Seiten. Bitte beachten Sie, dass der Funktionsumfang dieser Leseprobe sowie ihre Darstel-lung von der E-Book-Fassung des vorgestellten Buches abweichen können. Diese Leseprobe ist in all ihren Teilen urheberrechtlich geschützt. Alle Nut-zungs- und Verwertungsrechte liegen beim Autor und beim Verlag.

Teilen Sie Ihre Leseerfahrung mit uns!

Thomas Theis ist Diplom-Ingenieur für Technische Informa-tik und hat langjährige Erfahrung als IT-Dozent, unter ande-rem an der Fachhochschule Aachen. Er leitet Schulungen zu C/C++, Visual Basic und Webprogrammierung und ist Autor zahlreicher erfolgreicher Fachbücher. Einsteiger und Neulin-ge schätzen seine Fähigkeit, auch komplizierte Sachverhalte leicht verständlich zu machen und dabei auch den Spaß am Programmieren nie aus den Augen zu verlieren.

Wissen, wie’s geht.