Sie sind hier
E-Book

Spiele entwickeln mit Unity 5

2D- und 3D-Games mit Unity und C# für Desktop, Web & Mobile. Für Unity 5.6

AutorCarsten Seifert, Jan Wislaug
VerlagCarl Hanser Fachbuchverlag
Erscheinungsjahr2017
Seitenanzahl670 Seiten
ISBN9783446453685
FormatPDF/ePUB
KopierschutzWasserzeichen/DRM
GerätePC/MAC/eReader/Tablet
Preis39,99 EUR

- Der Bestseller zur Spieleentwicklung mit Unity in der dritten, aktualisierten Auflage
- Für alle, die ihr eigenes Spiel entwickeln wollen; Vorkenntnisse sind nicht erforderlich
Begeben Sie sich mit Carsten Seifert - alias Hummelwalker auf YouTube - und Jan Wislaug - Video-Trainer für Unity - in die Welt von Unity 5. Erfahren Sie hier, wie Sie Ihre Ideen umsetzen und eigene Spiele entwickeln können. Nach einer Einführung in C# und die Skript-Programmierung lernen Sie, wie die wichtigsten Werkzeuge und Systeme in Unity funktionieren, zusammenarbeiten und wie Sie diese kombinieren können. Darauf aufbauend entwickeln Sie zwei komplette Spiele - ein 2D- und ein 3D-Game.
Die dritte Auflage wurde komplett auf Unity 5.6 aktualisiert und geht u. a. auf die neue Plattform WebGL ein, beschreibt das überarbeitete Licht-System und zeigt die neuen Möglichkeiten beim Partikelsystem. Die Spiele sowie Video-Tutorials stehen als Online-Download zur Verfügung.
Aus dem Inhalt
Installation & Oberfläche von Unity 5.6 // Einführung in C# // Skript-Programmierung // Objekte in der 2. und 3. Dimension // Physically Based Shading // Kameras: die Augen des Spielers // Unitys aufgebohrtes Lichtsystem // Physik-Engine // User-Interaktion auf PC und mobilen Geräten // Audiosysteme und Abmischung // Partikeleffekte mit Shuriken // Landschaften gestalten // Wind Zones // GUI-Systeme // Prefabs // Internet & Datenbanken // Animationen // Künstliche Intelligenz // Fehlersuche & Performance // Spiele für verschiedene Plattformen vorbereiten // Beispiel 1: 2D-Touch-Game // Beispiel 2: 3D-Adventure// Produktionsprozesse in der Spieleentwicklung
Online finden Sie
•die Games aus dem Buch mit allen Ressourcen
•Videotutorials zur Vertiefung
•weitere Beispiele, Zusatzmaterialien

Kaufen Sie hier:

Horizontale Tabs

Leseprobe
01Einleitung

Computerspiele gehören heutzutage zu den beliebtesten Freizeitgestaltungen unserer Zeit. Mit Zunahme der Popularität ist aber auch der Anspruch an diese Spiele gestiegen. Während in den ersten Jahren bis Jahrzehnten dieser jungen Branche noch ein einziger Programmierer ausreichte, um alle notwendigen Aufgaben zu erledigen, werden anspruchsvolle Computerspiele heutzutage meist von großen Teams umgesetzt. Hier arbeiten 3D-Modellierer, Grafiker, Sounddesigner, Level-Designern und natürlich auch Programmierer aus unterschiedlichen Sparten Hand in Hand.

Um den stetig wachsenden Ansprüchen zu genügen, sind aber auch die Werkzeuge der Entwickler ständig mitgewachsen. Eines dieser Werkzeuge ist Unity. Unity ist eine Spieleentwicklungsumgebung für Windows- und Mac OS X-Systeme und wird von der aus Dänemark stammenden Firma Unity Technologies entwickelt. Mit ihr können Sie sowohl interaktive 3D- als auch 2D-Inhalte erstellen. Wir sprechen deshalb von Inhalten und nicht nur von Spielen, weil Unity zwar eigentlich für die Entwicklung von 3D-Spielen gedacht war, mittlerweile aber auch immer häufiger Anwendung in anderen Bereichen findet. So wird es beispielsweise für Architekturvisualisierungen genutzt, im E-Learning-Bereich eingesetzt oder in der Digital-Signage-Branche für das Erstellen digitaler Werbe- und Informationssysteme genommen.

Da Unity ursprünglich für die Entwicklung von 3D-Spielen konzipiert wurde, lautet die Internet-Adresse der Firma unity3d.com. Dies ist der Grund, weshalb die Entwicklungssoftware auch gerne mal „Unity3D“ genannt wird, was aber eben nicht ganz korrekt ist.

1.1Multiplattform-Publishing

Eine besondere Stärke von Unity ist die Unterstützung von Multiplattform-Publishing. Das bedeutet, dass Sie in Unity ein Spiel einmal entwickeln können, das Sie dann aber für mehrere Plattformen exportieren können. Aktuell werden mehr als 25 Plattformen unterstützt, die sich grob in folgende Kategorien einteilen lassen:

  • Die sogenannten „Standalones“. Hierzu gehören: Windows Desktop, Mac, Linux (und Steam OS)

  • Die mobilen Smartphone-/Tablet-Plattformen: iOS, Android, Windows Phone, Fire OS

  • Die Spielekonsolen: PlayStation 4, PlayStation Vita, Xbox One, Nintendo Switch, Wii U, Nintendo 3DS

  • Die Kategorie „Smart-TV“. Hier werden folgende Systeme unterstützt: AndroidTV, Samsung SMART-TV, tvOS

In Verbindung mit diesen Plattformen bietet Unity die Möglichkeit, Inhalte direkt für verschiedene Virtual-Reality-Systeme zu entwickeln. Hierzu gehören: Occulus-Rift, Google-Cardboard, Steam-VR, Playstation-VR, Gear-VR, Microsoft Hololens und Daydream.

Auch für Web-Inhalte bietet Unity entsprechende Features. Mit der Plattform „WebGL“, die im Browser läuft und auf HTML5 basiert, können Sie Nutzern direkten Zugriff auf Ihre Inhalte geben.

Bei den erwähnten Spielekonsolen müssen Sie allerdings noch eine Einschränkung beachten: Sie müssen hier extra Lizenzen erwerben, die zum einen nicht günstig und zum anderen nur für Firmen verfügbar sind, die von den jeweiligen Konsolenherstellern auch als Entwickler akzeptiert wurden. Deshalb werden wir die Konsolenentwicklung in diesem Buch auch außen vor lassen und nicht näher beleuchten.

1.2Das kann Unity (nicht)

Unity bringt eine ganze Reihe an nützlichen Werkzeugen mit, um Spiele und andere 2D- und 3D-Anwendungen zu entwickeln. So gibt es neben einer ausgeklügelten Physik-Engine auch Tools für Partikeleffekte, zur Landschaftsgestaltung oder auch für Animationen. Außerdem wird Unity mit einer extra angepassten Version der Softwareentwicklungsumgebung MonoDevelop ausgeliefert, in der die Programmierung umgesetzt und das Debugging vorgenommen werden kann.

Eines ist Unity allerdings nicht: Es ist keine 3D-Modellierungssoftware. Unity bietet zwar von Haus aus einige 3D-Grundobjekte an, sogenannte Primitives, die für kleinere Aufgaben genutzt werden können, aber für richtige Modellierungsaufgaben sollten Sie auf die dafür entwickelten Spezialtools wie 3ds Max oder das kostenlose Blender zurückgreifen.

1.3Lizenzmodelle

Sie haben die Möglichkeit, auf verschiedene Modelle zurückzugreifen, wenn Sie Unity nutzen möchten. Zum eine gibt es eine komplett kostenfreie Variante, welche bereits alle oben genannten Zielplattformen unterstützt und eine komplette Spieleentwicklung bis hin zum fertigen Spiel erlaubt. Es gibt jedoch auch einige Einschränkungen, die sich allerdings nur auf erweiterte oder visuelle Features beziehen. So müssen Sie zum Beispiel auf die dunkle Oberfläche (Skin) Ihres Unity-Programms verzichten oder haben auch keinen Zugriff auf den Premium-Support von Unity.

Bei der kostenpflichtigen Variante unterscheidet man die drei Abo-Modelle „Plus“, „Pro“ und „Enterprise“, welche jeweils monatlich zu bezahlen sind. Je teurer das Abo ist, umso mehr Funktionen stehen zur Verfügung.

Da sowohl die kostenfreie als auch die kostenpflichtige Edition kommerziell genutzt werden darf, gibt es beim Einsatz der kostenlosen Version die Vorgabe, dass nur Firmen bzw. Entwickler diese einsetzen dürfen, die nicht mehr als 100.000 US-Dollar Umsatz in einem Geschäftsjahr machen.

1.4Aufbau und Ziel des Buches

Mit diesem Buch werden Sie lernen, auf Basis von Unity eigene 2D- und 3D-Spiele zu entwickeln. Sie werden sich mit den unterschiedlichen Tools der Game Engine vertraut machen und die Skript-Programmierung erlernen. Dabei steht aber nicht das Ziel im Fokus, wirklich jede einzelne Funktion und Möglichkeit zu beleuchten, die Unity dem Entwickler anbietet. Vielmehr zeigen wir Ihnen, wie die unterschiedlichen Bereiche von Unity funktionieren und miteinander zusammenarbeiten. Denn der Funktionsumfang dieser Spieleentwicklungsumgebung ist mittlerweile so umfangreich geworden, dass es gar nicht mehr möglich ist, alle Tools und deren Möglichkeiten bis ins letzte Detail in einem einzigen Buch ausführlich zu behandeln. Daher liegt der Schwerpunkt auf den Kernfunktionen und wichtigen Optimierungstechniken, die in Unity für die 2D- und 3D-Spieleentwicklung bereitgestellt werden, ergänzt um Anwendungsbeispiele und Praxistipps.

Möchten Sie weiter in die Tiefe eines speziellen Tools gehen oder mehr Informationen zu bestimmten Scripting-Klassen erhalten, empfehlen wir Ihnen die mit Unity mitgelieferten Hilfe-Dokumente, die Sie über das Help-Menü erreichen. Dort finden Sie sowohl ein ausführliches Manual über die in Unity integrierten Tools sowie eine Scripting-Referenz über alle Unity-Klassen und deren Möglichkeiten. Letztere finden Sie auch über die Hilfe von MonoDevelop, der mitgelieferten Programmierumgebung.

Spieleentwicklung wird häufig auch als Spieleprogrammierung bezeichnet, auch wenn viele Aufgaben in der Spieleentwicklung heutzutage nicht mehr programmiert, sondern mithilfe von Tools erledigt werden. Nichtsdestotrotz ist der Programmieranteil bei der Entwicklung eines Spiels doch immer noch sehr hoch. Deshalb wird auch das Buch zunächst mit zwei größeren programmierbezogenen Kapiteln beginnen. Das erste behandelt allgemeine Grundlagen der Programmierung, das zweite geht auf die Unity-spezifischen Themen ein. Erst danach werden wir in die 3D-Welt von Unity eintauchen und die verschiedenen Werkzeuge behandeln. Der Aufbau ist deshalb so gewählt, weil wir in den folgenden Kapiteln immer wieder kleinere Skript-Beispiele zeigen, die Einsatzmöglichkeiten in der Praxis demonstrieren.

Ganz grundsätzlich ist die Reihenfolge der einzelnen Kapitel so gewählt, dass die Inhalte aufeinander aufbauen. Aus diesem Grund kommen auch erst zum Ende des Buches die beiden Beispiel-Games, eines für 2D und eines für 3D. In diesen werden alle angesprochenen Themen noch einmal aufgegriffen und die gesamten Zusammenhänge in der Praxis gezeigt. Nichtsdestotrotz können Sie gerne diese Kapitel auch vorziehen. Speziell das 2D-Spiel eignet sich hierfür gut.

Im Buch werden wir Hinweiskästen, wie den obigen, einsetzen, um Hinweise und Tipps zu geben. Je nach Typ des Hinweises werden diese mit unterschiedlichen Icons ausgezeichnet.

Hinweise zu weiterführenden Inhalten im InternetPraxistippsAllgemeine Hinweise

1.5Weiterentwicklung von Unity

Die Spieleindustrie gehört zu den Branchen, die sich aktuell am schnellsten verändern. Kein Wunder also, dass auch Unity ständig weiterentwickelt wird und neue Funktionen erhält. Sollten Sie Unterschiede zwischen dem Buch und Ihrer Unity-Version erkennen, wird dies sicher der ständigen Weiterentwicklung von Unity geschuldet sein.

Aber nicht nur der Funktionsumfang wird ständig weiterentwickelt, auch das Lizenzmodell von...

Blick ins Buch
Inhaltsverzeichnis
Inhalt5
Vorwort20
1 Einleitung22
1.1 Multiplattform-Publishing22
1.2 Das kann Unity (nicht)23
1.3 Lizenzmodelle23
1.4 Aufbau und Ziel des Buches24
1.5 Weiterentwicklung von Unity25
1.6 Online-Zusatzmaterial26
2 Grundlagen28
2.1 Installation28
2.2 Oberfläche28
2.2.1 Hauptmenü30
2.2.2 Scene View31
2.2.3 Game View33
2.2.4 Toolbar35
2.2.5 Hierarchy37
2.2.6 Inspector38
2.2.7 Project Browser42
2.2.8 Console44
2.3 Das Unity-Projekt44
2.3.1 Neues Projekt anlegen45
2.3.2 Bestehendes Projekt öffnen46
2.3.3 Projektdateien47
2.3.4 Szene47
2.3.5 Game Objects48
2.3.6 Tags50
2.3.7 Layer51
2.3.8 Assets52
2.3.9 Frames55
2.4 Das erste Übungsprojekt55
3 C# und Unity58
3.1 Die Sprache C#58
3.2 Syntax59
3.3 Kommentare60
3.4 Variablen60
3.4.1 Namenskonventionen60
3.4.2 Datentypen61
3.4.3 Schlüsselwort var62
3.4.4 Datenfelder/Array62
3.5 Konstanten64
3.5.1 Enumeration64
3.6 Typkonvertierung65
3.7 Rechnen65
3.8 Verzweigungen66
3.8.1 if-Anweisungen67
3.8.2 switch-Anweisung69
3.9 Schleifen70
3.9.1 for-Schleife70
3.9.2 Foreach-Schleife71
3.9.3 while-Schleife71
3.9.4 do-Schleife72
3.10 Klassen72
3.10.1 Komponenten per Code zuweisen73
3.10.2 Instanziierung von Nichtkomponenten73
3.10.3 Werttypen und Referenztypen75
3.10.4 Überladene Methoden76
3.11 Der Konstruktor76
3.11.1 Konstruktoren in Unity77
3.12 Lokale und globale Variablen77
3.12.1 Namensverwechslung verhindern mit this77
3.13 Zugriff und Sichtbarkeit78
3.14 Statische Klassen und Klassenmember78
3.15 Parametermodifizierer out/ref79
3.16 Array-Übergabe mit params80
3.17 Eigenschaften und Eigenschaftsmethoden81
3.18 Vererbung82
3.18.1 Basisklasse und abgeleitete Klassen83
3.18.2 Vererbung und die Sichtbarkeit83
3.18.3 Geerbte Methode überschreiben84
3.18.4 Zugriff auf die Basisklasse84
3.18.5 Klassen versiegeln85
3.19 Polymorphie85
3.20 Schnittstellen86
3.20.1 Schnittstelle definieren86
3.20.2 Schnittstellen implementieren86
3.20.3 Zugriff über eine Schnittstelle87
3.21 Namespaces88
3.21.1 Eigene Namespaces definieren89
3.22 Generische Klassen und Methoden90
3.22.1 List90
3.22.2 Dictionary91
4 Skript-Programmierung94
4.1 MonoDevelop94
4.1.1 Hilfe in MonoDevelop95
4.1.2 Syntaxfehler95
4.2 Nutzbare Programmiersprachen96
4.2.1 Warum C#?97
4.3 Unitys Vererbungsstruktur97
4.3.1 Object98
4.3.2 GameObject98
4.3.3 ScriptableObject98
4.3.4 Component98
4.3.5 Transform99
4.3.6 Behaviour99
4.3.7 MonoBehaviour99
4.4 Skripte erstellen99
4.4.1 Skripte umbenennen100
4.5 Das Skript-Grundgerüst101
4.6 Unitys Event-Methoden101
4.6.1 Update102
4.6.2 FixedUpdate102
4.6.3 Awake103
4.6.4 Start103
4.6.5 OnGUI103
4.6.6 LateUpdate104
4.6.7 Aufruf-Reihenfolge104
4.7 Komponentenprogrammierung105
4.7.1 Auf GameObjects zugreifen105
4.7.2 GameObjects aktivieren und deaktivieren107
4.7.3 GameObjects zerstören107
4.7.4 GameObjects erstellen107
4.7.5 Auf Components zugreifen108
4.7.6 Components hinzufügen110
4.7.7 Components entfernen110
4.7.8 Components aktivieren und deaktivieren110
4.7.9 Attribute111
4.8 Zufallswerte112
4.9 Parallel Code ausführen113
4.9.1 WaitForSeconds114
4.10 Verzögerte und wiederholende Funktionsaufrufe mit Invoke115
4.10.1 Invoke115
4.10.2 InvokeRepeating, IsInvoking und CancelInvoke115
4.11 Daten speichern und laden116
4.11.1 PlayerPrefs-Voreinstellungen116
4.11.2 Daten speichern117
4.11.3 Daten laden118
4.11.4 Key überprüfen118
4.11.5 Löschen118
4.11.6 Save118
4.12 Szeneübergreifende Daten119
4.12.1 Werteübergabe mit PlayerPrefs119
4.12.2 Zerstörung unterbinden121
4.13 Debug-Klasse123
4.14 Kompilierungsreihenfolge123
4.14.1 Programmsprachen mischen und der sprachübergreifende Zugriff124
4.15 Ausführungsreihenfolge124
4.16 Plattformabhängig Code kompilieren125
4.17 Eigene Assets mit ScriptableObject126
4.17.1 Neue ScriptableObject-Subklasse erstellen126
4.17.2 Instanzen eines ScriptableObjects erstellen127
5 Objekte in der zweiten und dritten Dimension130
5.1 Das 3D-Koordinatensystem130
5.2 Vektoren131
5.2.1 Ort, Winkel und Länge132
5.2.2 Normalisieren133
5.3 Das Mesh134
5.3.1 Normalenvektor135
5.3.2 MeshFilter und MeshRenderer136
5.4 Transform138
5.4.1 Kontextmenü der Transform-Komponente138
5.4.2 Objekthierarchien139
5.4.3 Scripting mit Transform140
5.4.4 Quaternion140
5.5 Shader und Materials141
5.5.1 Der Standard-Shader142
5.5.2 Texturen159
5.5.3 UV Mapping162
5.6 3D-Modelle einer Szene zufügen163
5.6.1 Primitives163
5.6.2 3D-Modelle importieren165
5.6.3 In Unity modellieren166
5.6.4 Prozedurale Mesh-Generierung167
5.6.5 Level Of Detail167
5.7 2D in Unity169
5.7.1 Sprites170
5.7.2 SpriteRenderer175
5.7.3 Parallax Scrolling178
6 Kameras, die Augen des Spielers182
6.1 Die Kamera182
6.1.1 Komponenten eines Kamera-Objektes184
6.1.2 HDR – High Dynamic Range-Rendering184
6.1.3 Linearer- und Gamma-Farbraum187
6.2 Kamerasteuerung190
6.2.1 Statische Kamera190
6.2.2 Parenting-Kamera191
6.2.3 Kamera-Skripte191
6.3 ScreenPointToRay193
6.4 Mehrere Kameras194
6.4.1 Kamerawechsel194
6.4.2 Split-Screen195
6.4.3 Einfache Minimap196
6.4.4 Render Texture198
6.5 Image Effects200
6.5.1 Beispiel: Haus bei Nacht200
6.6 Skybox202
6.6.1 Mehrere Skyboxen gleichzeitig einsetzen203
6.6.2 Skybox selber erstellen204
6.7 Occlusion Culling205
6.7.1 Occluder Static und Occludee Static207
6.7.2 Occlusion Culling erstellen207
7 Licht und Schatten210
7.1 Environment Lighting210
7.2 Lichtarten212
7.2.1 Directional Light213
7.2.2 Point Light214
7.2.3 Spot Light215
7.2.4 Area Light216
7.3 Schatten217
7.3.1 Einfluss des MeshRenderers auf Schatten218
7.4 Light Cookies219
7.4.1 Import Settings eines Light Cookies219
7.4.2 Light Cookies und Point Lights220
7.5 Light Halos221
7.5.1 Unabhängige Halos222
7.6 Lens Flares222
7.6.1 Eigene Lens Flares223
7.7 Projector223
7.7.1 Standard Projectors223
7.8 Lightmapping225
7.8.1 Light Probes228
7.9 Rendering Paths230
7.9.1 Forward Rendering231
7.9.2 Vertex Lit232
7.9.3 Deferred Lighting233
7.10 Global Illumination234
7.10.1 Baked GI235
7.10.2 Realtime Lighting236
7.10.3 Lightmapping Settings237
7.11 Light Explorer238
7.12 Reflexionen (Spiegelungen)239
7.12.1 Reflection Probes240
7.13 Qualitätseinstellungen243
7.13.1 Quality Settings243
7.13.2 Qualitätsstufen per Code festlegen243
8 Physik in Unity246
8.1 Physikberechnung246
8.2 Rigidbodies247
8.2.1 Rigidbodies kennenlernen248
8.2.2 Masseschwerpunkt249
8.2.3 Kräfte und Drehmomente zufügen250
8.3 Kollisionen253
8.3.1 Collider253
8.3.2 Trigger257
8.3.3 Static Collider259
8.3.4 Kollisionen mit schnellen Objekten259
8.3.5 Terrain Collider260
8.3.6 Layer-basierende Kollisionserkennung260
8.3.7 Mit Layer-Masken arbeiten261
8.4 Wheel Collider263
8.4.1 Wheel Friction Curve264
8.4.2 Entwicklung einer Fahrzeugsteuerung266
8.4.3 Autokonfiguration273
8.4.4 Fahrzeugstabilität275
8.5 Physic Materials275
8.6 Joints276
8.6.1 Fixed Joint276
8.6.2 Spring Joint277
8.6.3 Hinge Joint277
8.7 Raycasting277
8.8 Character Controller279
8.8.1 SimpleMove279
8.8.2 Move280
8.8.3 Kräfte zufügen281
8.8.4 Einfacher First Person Controller282
8.9 2D-Physik284
8.9.1 OnCollision2D- und OnTrigger2D-Methoden286
8.9.2 2D Physic Effectors287
9 Maus, Tastatur, Touch290
9.1 Virtuelle Achsen und Tasten290
9.1.1 Der Input-Manager290
9.1.2 Virtuelle Achsen292
9.1.3 Virtuelle Tasten292
9.1.4 Steuern mit Mauseingaben293
9.1.5 Joystick-Inputs293
9.1.6 Anlegen neuer Inputs294
9.2 Achsen- und Tasteneingaben auswerten294
9.2.1 GetAxis294
9.2.2 GetButton295
9.3 Tastatureingaben auswerten296
9.3.1 GetKey296
9.3.2 anyKey296
9.4 Mauseingaben auswerten297
9.4.1 GetMouseButton297
9.4.2 Mauseingaben auf Objekten per Event298
9.4.3 mousePosition298
9.4.4 Mauszeiger ändern299
9.5 Touch-Eingaben auswerten301
9.5.1 Der Touch-Typ301
9.5.2 Input.touches302
9.5.3 TouchCount302
9.5.4 GetTouch302
9.5.5 CrossPlatformInput303
9.6 Beschleunigungssensor auswerten304
9.6.1 Input.acceleration305
9.6.2 Tiefpass-Filter306
9.7 Steuerungen bei Mehrspieler-Games307
9.7.1 Split-Screen-Steuerung307
9.7.2 Netzwerkspiele308
10 Audio310
10.1 AudioListener310
10.2 AudioSource311
10.2.1 Durch Mauern hören verhindern313
10.2.2 Sound starten und stoppen315
10.2.3 Temporäre AudioSource316
10.3 AudioClip317
10.3.1 Länge ermitteln317
10.4 Reverb Zone317
10.5 Filter319
10.6 Audio Mixer319
10.6.1 Das Audio Mixer-Fenster319
10.6.2 Audiosignalwege323
10.6.3 Mit Snapshots arbeiten327
10.6.4 Views erstellen328
10.6.5 Parameter per Skript bearbeiten328
11 Partikeleffekte mit Shuriken332
11.1 Editor-Fenster333
11.2 Particle Effect Control334
11.3 Numerische Parametervarianten334
11.4 Farbparameter-Varianten335
11.5 Default-Modul335
11.6 Effekt-Module337
11.6.1 Emission337
11.6.2 Shape337
11.6.3 Velocity over Lifetime339
11.6.4 Limit Velocity over Lifetime339
11.6.5 Inherit Velocity340
11.6.6 Force over Lifetime340
11.6.7 Color over Lifetime340
11.6.8 Color by Speed341
11.6.9 Size over Lifetime341
11.6.10 Size by Speed341
11.6.11 Rotation over Lifetime341
11.6.12 Rotation by Speed342
11.6.13 External Forces342
11.6.14 Noise342
11.6.15 Collision343
11.6.16 Triggers344
11.6.17 Sub Emitter346
11.6.18 Texture-Sheet-Animation346
11.6.19 Lights347
11.6.20 Trails347
11.6.21 Renderer348
11.7 Partikelemission starten, stoppen und unterbrechen350
11.7.1 Play351
11.7.2 Stop351
11.7.3 Pause351
11.7.4 enableEmission351
11.8 OnParticleCollision352
11.8.1 GetCollisionEvents352
11.9 Feuer erstellen353
11.9.1 Materials erstellen353
11.9.2 Feuer-Partikelsystem354
11.9.3 Rauch-Partikelsystem357
11.10 Wassertropfen erstellen361
11.10.1 Tropfen-Material erstellen361
11.10.2 Wassertropfen-Partikelsystem362
11.10.3 Kollisionspartikelsystem364
11.10.4 Kollisionssound366
12 Landschaften gestalten368
12.1 Was Terrains können und wo die Grenzen liegen369
12.2 Terrainhöhe verändern369
12.2.1 Pinsel370
12.2.2 Oberflächen anheben und senken370
12.2.3 Plateaus und Schluchten erstellen371
12.2.4 Oberflächen weicher machen372
12.2.5 Heightmaps372
12.3 Terrain texturieren374
12.3.1 Textur-Pinsel375
12.3.2 Texturen verwalten375
12.4 Bäume und Sträucher377
12.4.1 Bedienung des Place Tree-Tools378
12.4.2 Wälder erstellen378
12.4.3 Mit Bäumen kollidieren378
12.5 Gräser und Details hinzufügen379
12.5.1 Detail-Meshs380
12.5.2 Gräser381
12.5.3 Quelldaten nachladen381
12.6 Terrain-Einstellungen382
12.6.1 Base Terrain382
12.6.2 Resolution382
12.6.3 Tree & Details Objects383
12.6.4 Wind Settings383
12.6.5 Zur Laufzeit Terrain-Eigenschaften verändern384
12.7 Der Weg zum perfekten Terrain385
12.8 Gewässer386
13 Wind Zones388
13.1 Spherical vs. Directional389
13.2 Wind Zone – Eigenschaften390
13.3 Frische Brise391
13.4 Turbine391
14 GUI392
14.1 Das UI-System uGUI393
14.1.1 Canvas393
14.1.2 RectTransform397
14.1.3 UI-Sprite Import401
14.1.4 Grafische Controls402
14.1.5 Interaktive Controls406
14.1.6 Controls designen413
14.1.7 Animationen in uGUI414
14.1.8 Event Trigger415
14.2 Screen-Klasse416
14.2.1 Schriftgröße dem Bildschirm anpassen416
14.3 OnGUI-Programmierung417
14.3.1 GUI418
14.3.2 GUILayout420
14.3.3 GUIStyle und GUISkin421
15 Prefabs424
15.1 Prefabs erstellen und nutzen424
15.2 Prefab-Instanzen erzeugen424
15.2.1 Instanzen per Code erstellen425
15.2.2 Instanzen weiter bearbeiten426
15.3 Prefabs ersetzen und zurücksetzen426
15.4 Prefab-Verbindungen auflösen427
16 Internet und Datenbanken428
16.1 Die WWW-Klasse428
16.1.1 Rückgabewert-Formate429
16.1.2 Parameter übergeben430
16.2 Datenbank-Kommunikation431
16.2.1 Daten in einer Datenbank speichern431
16.2.2 Daten von einer Datenbank abfragen432
16.2.3 Rückgabewerte parsen434
16.2.4 Datenhaltung in eigenen Datentypen435
16.2.5 HighscoreCommunication.cs437
16.2.6 Datenbankverbindung in PHP438
17 Animationen440
17.1 Allgemeiner Animation-Workflow441
17.2 Animationen erstellen441
17.2.1 Animation View442
17.2.2 Curves vs. Dope Sheet443
17.2.3 Animationsaufnahme443
17.2.4 Beispiel Fallgatter-Animation448
17.3 Animationen importieren449
17.3.1 Rig450
17.3.2 Animationen452
17.4 Animationen einbinden455
17.4.1 Animator Controller456
17.4.2 Animator-Komponente471
17.4.3 Beispiel Fallgatter: Animator Controller472
17.5 Controller-Skripte474
17.5.1 Parameter des Animator Controllers setzen475
17.5.2 Animation States abfragen475
17.5.3 Beispiel Fallgatter Controller-Skript476
17.6 Animation Events478
17.7 Das „alte“ Animationssystem479
18 Künstliche Intelligenz482
18.1 NavMeshAgent483
18.1.1 Eigenschaften der Navigationskomponente484
18.1.2 Zielpunkt zuweisen485
18.1.3 Pfadsuche unterbrechen und fortsetzen485
18.2 Navigation-Fenster486
18.2.1 Agents Tab487
18.2.2 Object Tab488
18.2.3 Bake Tab488
18.2.4 Areas Tab489
18.3 NavMeshObstacle490
18.4 Off-Mesh Link491
18.4.1 Automatische Off-Mesh Links491
18.4.2 Manuelle Off-Mesh Links492
18.5 Point & Click-Steuerung für Maus und Touch493
19 Fehlersuche und Performance496
19.1 Fehlersuche496
19.1.1 Breakpoints497
19.1.2 Variablen beobachten498
19.1.3 Console Tab nutzen499
19.1.4 GUI- und GUILayout nutzen499
19.1.5 Fehlersuche bei mobilen Plattformen500
19.2 Performance502
19.2.1 Rendering-Statistik503
19.2.2 Batching-Verfahren504
19.2.3 Analyse mit dem Profiler505
19.2.4 Echtzeit-Analyse auf Endgeräten507
20 Spiele erstellen und publizieren510
20.1 Der Build-Prozess510
20.1.1 Szenen des Spiels511
20.1.2 Plattformen512
20.1.3 Notwendige SDKs512
20.1.4 Plattformspezifische Optionen513
20.1.5 Developer Builds513
20.2 Publizieren514
20.2.1 App515
20.2.2 Browser-Game515
20.2.3 Desktop-Anwendung516
21 Erstes Beispiel-Game: 2D-Touch-Game518
21.1 Projekt und Szene518
21.1.1 Die Kamera520
21.1.2 Texturen importieren und Sprites definieren521
21.2 Gespenster und Hintergrund523
21.2.1 Gespenster animieren526
21.2.2 Gespenster laufen lassen530
21.2.3 Gespenster-Prefab erstellen532
21.3 Der GameController533
21.3.1 Der Spawner533
21.3.2 Level-Anzeige535
21.3.3 Der Input-Controller536
21.3.4 Game Over-UI538
21.3.5 Hintergrundmusik545
21.4 Punkte zählen546
21.5 Spielende547
21.6 Spiel erstellen548
22 Zweites Beispiel-Game: 3D Dungeon Crawler550
22.1 Level-Design551
22.1.1 Modellimport552
22.1.2 Materials konfigurieren553
22.1.3 Prefabs erstellen554
22.1.4 Dungeon erstellen556
22.1.5 Dekoration erstellen561
22.2 Inventarsystem erstellen563
22.2.1 Verwaltungslogik563
22.2.2 Oberfläche des Inventarsystems571
22.2.3 Inventar-Items574
22.3 Game Controller581
22.4 Spieler erstellen581
22.4.1 Lebensverwaltung583
22.4.2 Spielersteuerung594
22.4.3 Wurfstein entwickeln602
22.4.4 Lautstärke steuern608
22.5 Quest erstellen609
22.5.1 Erfahrungspunkte verwalten609
22.5.2 Questgeber erstellen611
22.5.3 Sub-Quest erstellen620
22.6 Gegner erstellen625
22.6.1 Model-, Rig- und Animationsimport625
22.6.2 Komponenten und Prefab konfigurieren626
22.6.3 Animator Controller erstellen628
22.6.4 NavMesh erstellen630
22.6.5 Umgebung und Feinde erkennen631
22.6.6 Gesundheitszustand verwalten634
22.6.7 Künstliche Intelligenz entwickeln638
22.7 Eröffnungsszene647
22.7.1 Szene erstellen647
22.7.2 Startmenü-Logik erstellen648
22.7.3 Menü-GUI erstellen650
22.8 WebGL-Anpassungen652
22.8.1 WebGL-Input ändern652
22.8.2 Quit-Methode in WebGL abfangen653
22.9 Finale Einstellungen654
22.10 So könnte es weitergehen657
23 Der Produktionsprozess in der Spieleentwicklung658
23.1 Die Produktionsphasen658
23.1.1 Ideen- und Konzeptionsphase659
23.1.2 Planungsphase659
23.1.3 Entwicklungsphase659
23.1.4 Testphase660
23.1.5 Veröffentlichung und Postproduktion660
23.2 Das Game-Design-Dokument660
24 Schlusswort662
Index664

Weitere E-Books zum Thema: Programmiersprachen - Softwareentwicklung

ASP.NET Shortcut

E-Book ASP.NET Shortcut
Format: PDF

Shortcut-Tipps für ASP.NET-Profis Die neue .NET-Version der Active Server Pages stellt eine Umgebung zur Entwicklung von Web-Applikationen im .NET-Framework bereit. Viele aus der Desktop-…

ASP.NET Shortcut

E-Book ASP.NET Shortcut
Format: PDF

Shortcut-Tipps für ASP.NET-Profis Die neue .NET-Version der Active Server Pages stellt eine Umgebung zur Entwicklung von Web-Applikationen im .NET-Framework bereit. Viele aus der Desktop-…

ASP.NET Shortcut

E-Book ASP.NET Shortcut
Format: PDF

Shortcut-Tipps für ASP.NET-Profis Die neue .NET-Version der Active Server Pages stellt eine Umgebung zur Entwicklung von Web-Applikationen im .NET-Framework bereit. Viele aus der Desktop-…

Programmieren lernen in PHP 5

E-Book Programmieren lernen in PHP 5
Format: PDF

Mit der Version 5 erreicht PHP einen bemerkenswerten Reifegrad, der PHP zu einer festen Größe in der Welt der Webprogrammierung macht. Gerade die leichte Erlernbarkeit macht PHP zur idealen…

Mathematik für Informatiker

E-Book Mathematik für Informatiker
Format: PDF

Die Informatik entwickelt sich in einer unglaublichen Geschwindigkeit. Häufig ist die Mathematik Grundlage von Neuerungen. Deshalb ist sie unverzichtbares Werkzeug jedes Informatikers und Pflichtfach…

Mathematik für Informatiker

E-Book Mathematik für Informatiker
Format: PDF

Die Informatik entwickelt sich in einer unglaublichen Geschwindigkeit. Häufig ist die Mathematik Grundlage von Neuerungen. Deshalb ist sie unverzichtbares Werkzeug jedes Informatikers und Pflichtfach…

Mathematik für Informatiker

E-Book Mathematik für Informatiker
Format: PDF

Die Informatik entwickelt sich in einer unglaublichen Geschwindigkeit. Häufig ist die Mathematik Grundlage von Neuerungen. Deshalb ist sie unverzichtbares Werkzeug jedes Informatikers und Pflichtfach…

Weitere Zeitschriften

Arzneimittel Zeitung

Arzneimittel Zeitung

Die Arneimittel Zeitung ist die Zeitung für Entscheider und Mitarbeiter in der Pharmabranche. Sie informiert branchenspezifisch über Gesundheits- und Arzneimittelpolitik, über Unternehmen und ...

Das Grundeigentum

Das Grundeigentum

Das Grundeigentum - Zeitschrift für die gesamte Grundstücks-, Haus- und Wohnungswirtschaft. Für jeden, der sich gründlich und aktuell informieren will. Zu allen Fragen rund um die Immobilie. Mit ...

DSD Der Sicherheitsdienst

DSD Der Sicherheitsdienst

Der "DSD – Der Sicherheitsdienst" ist das Magazin der Sicherheitswirtschaft. Es erscheint viermal jährlich und mit einer Auflage von 11.000 Exemplaren. Der DSD informiert über aktuelle Themen ...

DULV info

DULV info

UL-Technik, UL-Flugbetrieb, Luftrecht, Reiseberichte, Verbandsinte. Der Deutsche Ultraleichtflugverband e. V. - oder kurz DULV - wurde 1982 von ein paar Enthusiasten gegründet. Wegen der hohen ...

EineWelt

EineWelt

Lebendige Reportagen, spannende Interviews, interessante Meldungen, informative Hintergrundberichte. Lesen Sie in der Zeitschrift „EineWelt“, was Menschen in Mission und Kirche bewegt Man kann ...

Eishockey NEWS

Eishockey NEWS

Eishockey NEWS bringt alles über die DEL, die DEL2, die Oberliga sowie die Regionalligen und Informationen über die NHL. Dazu ausführliche Statistiken, Hintergrundberichte, Personalities ...

Euphorion

Euphorion

EUPHORION wurde 1894 gegründet und widmet sich als „Zeitschrift für Literaturgeschichte“ dem gesamten Fachgebiet der deutschen Philologie. Mindestens ein Heft pro Jahrgang ist für die ...

Euro am Sonntag

Euro am Sonntag

Deutschlands aktuelleste Finanz-Wochenzeitung Jede Woche neu bietet €uro am Sonntag Antworten auf die wichtigsten Fragen zu den Themen Geldanlage und Vermögensaufbau. Auch komplexe Sachverhalte ...