3.10 Klassen 3.10.1 Komponenten per Code zuweisen 3.10.2 Instanziierung von Nichtkomponenten 3.10.3 Werttypen und Referenztypen 3.10.4 Überladene Methoden
50 50 51 53 53
3.11 Der Konstruktor 3.11.1 Konstruktoren in Unity
54 54
3.12 Lokale und globale Variablen 3.12.1 Namensverwechslung verhindern mit this
55 55
3.13 Zugriff und Sichtbarkeit
55
3.14 Statische Klassen und Klassenmember
56
3.15 Parametermodifizierer out/ref
57
3.16 Array-Übergabe mit params
58
3.17 Eigenschaften und Eigenschaftsmethoden
59
3.18 Vererbung 3.18.1 Basisklasse und abgeleitete Klassen 3.18.2 Vererbung und die Sichtbarkeit 3.18.3 Geerbte Methode überschreiben 3.18.4 Zugriff auf die Basisklasse 3.18.5 Klassen versiegeln
60 60 61 61 62 62
3.19 Polymorphie
63
3.20 Schnittstellen 3.20.1 Schnittstelle definieren 3.20.2 Schnittstellen implementieren 3.20.2.1 Unterstützung durch MonoDevelop 3.20.3 Zugriff über eine Schnittstellen
63 63 64 65 65
3.21 Namespaces 3.21.1 Eigene Namespaces definieren
66 66
3.22 Generische Klassen und Methoden 3.22.1 List 3.22.2 Dictionary
67 68 69
4
71
Skript-Programmierung
4.1 MonoDevelop 4.1.1 Hilfe in MonoDevelop 4.1.2 Syntaxfehler
4.11.5 Löschen 4.11.6 Save 4.12 Szeneübergreifende Daten 4.12.1 Werteübergabe mit PlayerPrefs 4.12.1.1 Startmenüs zur Initialisierung nutzen 4.12.2 Zerstörung unterbinden 4.12.2.1 DontDestroyOnLoad als Singleton 4.13 Debug-Klasse
95 95 96 96 97 98 98 99
4.14 Kompilierungsreihenfolge 4.14.1 Programmsprachen mischen und der sprachübergreifende Zugriff
100
4.15 Ausführungsreihenfolge
101
4.16 Plattformabhängig Code kompilieren
101
4.17 Eigene Assets mit ScriptableObject 4.17.1 Neue ScriptableObject-Subklasse erstellen 4.17.2 Instanzen eines ScriptableObjects erstellen 4.17.2.1 Eigener Menü-Knopf zum Erstellen von Assets
102 103 104 104
5
107
Objekte in der zweiten und dritten Dimension
100
5.1 Das 3D-Koordinatensystem
107
5.2 Vektoren 5.2.1 Ort, Winkel und Länge 5.2.2 Normalisieren
108 109 110
5.3 Das Mesh 5.3.1 Normalenvektor 5.3.2 MeshFilter und MeshRenderer
111 112 112
5.4 Transform 5.4.1 Kontextmenü der Transform-Komponente 5.4.2 Objekthierarchien 5.4.3 Scripting mit Transform 5.4.4 Quaternion
114 114 115 116 116
5.5 Shader und Materials 5.5.1 Der Standard-Shader 5.5.1.1 Rendering Mode 5.5.1.2 Main Maps 5.5.1.3 Secondary Maps 5.5.1.4 Metallic vs. Specular 5.5.2 Texturen 5.5.2.1 Import von Texturen 5.5.2.2 Normalmaps erstellen 5.5.3 UVMapping
117 118 120 121 127 129 133 134 135 136
5.6 3D-Modelle einer Szene zufügen 5.6.1 Primitives
138 138
5.6.2 3D-Modelle importieren 5.6.2.1 ModellmportSettings 5.6.3 In Unity modellieren 5.6.4 Prozedurale Mesh-Generierung 5.6.5 Level Of Detail 5.6.5.1 LODGroups 5.6.5.2 LOD-Qualitätseinstellungen
6.1 Die Kamera 6.1.1 Komponenten eines Kamera-Objektes 6.1.2 HDR - High Dynamic Range-Rendering 6.1.2.1 Rückwandeln mit Tonemapping 6.1.2.2 Abarbeitungsreihenfolge festlegen 6.1.3 Linearer- und Gamma-Farbraum 6.1.3.1 Die Gamma-Korrektur 6.1.3.2 Linear-Space und Gamma-Space in Unity
9.7 Steuerungen bei Mehrspieler-Games 9.7.1 Split-Screen-Steuerung 9.7.2 Netzwerkspiele
267 267 268
10 Audio
269
10.1 AudioListener
269
10.2 AudioSource 10.2.1 Durch Mauern hören verhindern 10.2.2 Sound starten und stoppen 10.2.3 Temporäre AudioSource
270 272 274 275
10.3 AudioClip 10.3.1 Länge ermitteln
276 276
10.4 Reverb Zone
276
10.5 Filter
278
10.6 Audio Mixer 10.6.1 Das Audio Mixer-Fenster 10.6.1.1 Die Audio-Steuerungseinheit 10.6.2 Audiosignalwege 10.6.2.1 Send & Receive 10.6.2.2 Duck Volume 10.6.3 Mit Snapshots arbeiten 10.6.4 Views erstellen
278 278 280 282 283 284 286 287
11 Partikeleffekte mit Shuriken
289
11.1 Editor-Fenster
290
11.2 Particle Effect Control
291
11.3 Numerische Parametervarianten
291
11.4
Farbparameter-Varianten
292
11.5
Default-Modul
292
11.6
Effekt-Module 11.6.1 Emission 11.6.2 Shape 11.6.2.1 Sphere 11.6.2.2 HemiSphere 11.6.2.3 Cone 11.6.2.4 Box 11.6.2.5 Mesh 11.6.3 Velocity over Lifetime 11.6.4 Limit Velocity over Lifetime 11.6.5 Force over Lifetime 11.6.6 Color over Lifetime 11.6.7 Color by Speed 11.6.8 Size over Lifetime 11.6.9 Size by Speed 11.6.10 Rotation over Lifetime 11.6.11 Rotation by Speed 11.6.12 External Forces 11.6.13 Collision 11.6.13.1 Planes 11.6.13.2 World 11.6.14 Sub Emitter 11.6.15 Texture-Sheet-Animation 11.6.16 Renderer 11.6.16.1 Billboard 11.6.16.2 Stretched Billboard 11.6.16.3 Horizontal Billboard 11.6.16.4 Vertical Billboard 11.6.16.5 Mesh
17.4 Animationen einbinden 17.4.1 Animator Controller 17.4.1.1 Animation States erstellen 17.4.1.2 Transitions - Animation States wechseln 17.4.1.3 Any State nutzen 17.4.1.4 Blend Trees 17.4.1.5 Layer und Avatar Masks 17.4.1.6 Sub-State Machines 17.4.1.7 State Machine Behaviours 17.4.2 Animator-Komponente 17.4.3 Beispiel Fallgatter: Animator Controller
404 404 405 406 408 408 409 411 416 420 421
17.5 Controller-Skripte 17.5.1 Parameter des Animator Controllers setzen 17.5.1.1 Mit Hash-Werten arbeiten 17.5.2 Animation States abfragen 17.5.3 Beispiel Fallgatter Controller-Skript
423 423 424 424 425
17.6
427
Animation Events
389
18
Künstliche Intelligenz
429
18.1
NavMeshAgent 18.1.1 Eigenschaften der Navigationskomponente 18.1.2 Zielpunkt zuweisen 18.1.3 Pfadsuche unterbrechen und fortsetzen
430 431 431 432
18.2
NavigationMesh 18.2.1 Object Tab 18.2.2 Bake Tab 18.2.3 Areas Tab