Spiele entwickeln mit Unity 5 - 2D- und 3D-Games mit Unity und C# für Desktop, Web & Mobile

Carsten Seifert

Spiele entwickeln mit Unity 5

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

2015

642 Seiten

Format: PDF, ePUB, Online Lesen

E-Book: €  31,99

E-Book kaufen

E-Book kaufen

ISBN: 9783446445802

 

Inhalt

6

Vorwort

24

1 Einleitung

26

1.1?Multiplattform-Publishing

26

1.2?Das kann Unity (nicht)

27

1.3?Lizenzmodelle

27

1.4?Aufbau und Ziel des Buches

28

1.5?Weiterentwicklung von Unity

29

1.6?Online-Zusatzmaterial

29

2 Grundlagen

32

2.1?Installation

32

2.2?Oberfläche

32

2.2.1?Hauptmenü

34

2.2.2?Scene View

35

2.2.2.1?Navigieren in der Scene View

36

2.2.2.2?Scene Gizmo

36

2.2.3?Game View

37

2.2.4?Toolbar

38

2.2.5?Hierarchy

40

2.2.5.1?Parenting

41

2.2.6?Inspector

42

2.2.6.1?Kopfinformationen im Inspector

43

2.2.6.2?Variablen Werte zuweisen

43

2.2.6.3?Komponenten-Menüs

44

2.2.6.4?Preview-Fenster

45

2.2.7?Project Browser

45

2.2.7.1?Assets suchen und finden

46

2.2.7.2?Assets importieren

47

2.2.8?Console

47

2.3?Das Unity-Projekt

48

2.3.1?Neues Projekt anlegen

48

2.3.2?Bestehendes Projekt öffnen

49

2.3.2.1?Ältere Projekte öffnen

50

2.3.3?Projektdateien

50

2.3.4?Szene

50

2.3.5?Game Objects

51

2.3.6?Components

52

2.3.7?Tags

53

2.3.8?Layer

54

2.3.9?Assets

54

2.3.9.1?UnityPackage

55

2.3.9.2?Asset Import

55

2.3.9.3?Asset Export

56

2.3.9.4?Asset Store

56

2.3.10?Frames

57

2.4?Das erste Übungsprojekt

58

3 C# und Unity

60

3.1?Die Sprache C#

60

3.2?Syntax

61

3.3?Kommentare

62

3.4?Variablen

62

3.4.1?Namenskonventionen

62

3.4.2?Datentypen

63

3.4.3?Schlüsselwort var

64

3.4.4?Datenfelder/Array

64

3.4.4.1?Arrays erstellen

64

3.4.4.2?Zugriff auf ein Array-Element

65

3.4.4.3?Anzahl aller Array-Items ermitteln

65

3.4.4.4?Mehrdimensionale Arrays

65

3.5?Konstanten

66

3.5.1?Enumeration

66

3.6?Typkonvertierung

67

3.7?Rechnen

68

3.8?Verzweigungen

69

3.8.1?if-Anweisungen

69

3.8.1.1?Komplexere if-Anweisungen

70

3.8.2?switch-Anweisung

71

3.9?Schleifen

72

3.9.1?for-Schleife

72

3.9.1.1?Negative Schrittweite

73

3.9.1.2?break

73

3.9.2?Foreach-Schleife

73

3.9.3?while-Schleife

74

3.9.4?do-Schleife

74

3.10?Klassen

75

3.10.1?Komponenten per Code zuweisen

75

3.10.2?Instanziierung von Nichtkomponenten

76

3.10.3?Werttypen und Referenztypen

78

3.10.4?Überladene Methoden

78

3.11?Der Konstruktor

79

3.11.1?Konstruktoren in Unity

79

3.12?Lokale und globale Variablen

80

3.12.1?Namensverwechslung verhindern mit this

80

3.13?Zugriff und Sichtbarkeit

80

3.14?Statische Klassen und Klassenmember

81

3.15?Parametermodifizierer out/ref

82

3.16?Array-Übergabe mit params

83

3.17?Eigenschaften und Eigenschafts­methoden

84

3.18?Vererbung

85

3.18.1?Basisklasse und abgeleitete Klassen

85

3.18.2?Vererbung und die Sichtbarkeit

86

3.18.3?Geerbte Methode überschreiben

86

3.18.4?Zugriff auf die Basisklasse

87

3.18.5?Klassen versiegeln

87

3.19?Polymorphie

88

3.20?Schnittstellen

88

3.20.1?Schnittstelle definieren

88

3.20.2?Schnittstellen implementieren

89

3.20.2.1?Unterstützung durch MonoDevelop

90

3.20.3?Zugriff über eine Schnittstellen

90

3.21?Namespaces

91

3.21.1?Eigene Namespaces definieren

91

3.22?Generische Klassen und Methoden

92

3.22.1?List

93

3.22.2?Dictionary

94

4 Skript-Programmierung

96

4.1?MonoDevelop

96

4.1.1?Hilfe in MonoDevelop

97

4.1.2?Syntaxfehler

97

4.2?Nutzbare Programmiersprachen

98

4.2.1?Warum C#?

98

4.3?Unitys Vererbungsstruktur

99

4.3.1?Object

99

4.3.2?GameObject

100

4.3.3?ScriptableObject

100

4.3.4?Component

100

4.3.5?Transform

101

4.3.6?Behaviour

101

4.3.7?MonoBehaviour

101

4.4?Skripte erstellen

101

4.4.1?Skripte umbenennen

102

4.5?Das Skript-Grundgerüst

102

4.6?Unitys Event-Methoden

103

4.6.1?Update

103

4.6.2?FixedUpdate

104

4.6.3?Awake

105

4.6.4?Start

105

4.6.5?OnGUI

105

4.6.6?LateUpdate

106

4.7?Komponentenprogrammierung

106

4.7.1?Auf GameObjects zugreifen

107

4.7.1.1?FindWithTag

107

4.7.1.2?FindGameObjectsWithTag

108

4.7.1.3?Find

108

4.7.2?GameObjects aktivieren und deaktivieren

108

4.7.3?GameObjects zerstören

109

4.7.4?GameObjects erstellen

109

4.7.5?Auf Components zugreifen

109

4.7.5.1?GetComponent

110

4.7.5.2?SendMessage

110

4.7.5.3?Direktzugriff

111

4.7.6?Components hinzufügen

111

4.7.7?Components entfernen

112

4.7.8?Components aktivieren und deaktivieren

112

4.7.9?Attribute

112

4.8?Zufallswerte

114

4.9?Parallel Code ausführen

115

4.9.1?WaitForSeconds

116

4.10?Verzögerte und wiederholende Funktionsaufrufe mit Invoke

116

4.10.1?Invoke

116

4.10.2?InvokeRepeating, IsInvoking und CancelInvoke

117

4.11?Daten speichern und laden

118

4.11.1?PlayerPrefs-Voreinstellungen

118

4.11.2?Daten speichern

119

4.11.3?Daten laden

119

4.11.4?Key überprüfen

120

4.11.5?Löschen

120

4.11.6?Save

120

4.12?Szeneübergreifende Daten

121

4.12.1?Werteübergabe mit PlayerPrefs

121

4.12.1.1?Startmenüs zur Initialisierung nutzen

122

4.12.2?Zerstörung unterbinden

123

4.12.2.1?DontDestroyOnLoad als Singleton

123

4.13?Debug-Klasse

124

4.14?Kompilierungsreihenfolge

125

4.14.1?Programmsprachen mischen und der sprachübergreifende Zugriff

125

4.15?Ausführungsreihenfolge

126

4.16?Plattformabhängig Code kompilieren

126

4.17?Eigene Assets mit ScriptableObject

127

4.17.1?Neue ScriptableObject-Subklasse erstellen

128

4.17.2?Instanzen eines ScriptableObjects erstellen

129

4.17.2.1?Eigener Menü-Knopf zum Erstellen von Assets

129

5 Objekte in der zweiten und dritten Dimension

132

5.1?Das 3D-Koordinatensystem

132

5.2?Vektoren

133

5.2.1?Ort, Winkel und Länge

134

5.2.2?Normalisieren

135

5.3?Das Mesh

136

5.3.1?Normalenvektor

137

5.3.2?MeshFilter und MeshRenderer

137

5.4?Transform

139

5.4.1?Kontextmenü der Transform-Komponente

139

5.4.2?Objekthierarchien

140

5.4.3?Scripting mit Transform

141

5.4.4?Quaternion

141

5.5?Shader und Materials

142

5.5.1?Der Standard-Shader

143

5.5.1.1?Rendering Mode

145

5.5.1.2?Main Maps

146

5.5.1.3?Secondary Maps

152

5.5.1.4?Metallic vs. Specular

154

5.5.2?Texturen

158

5.5.2.1?Import von Texturen

159

5.5.2.2?Normalmaps erstellen

160

5.5.3?UV Mapping

161

5.6?3D-Modelle einer Szene zufügen

163

5.6.1?Primitives

163

5.6.2?3D-Modelle importieren

164

5.6.2.1?Model Import Settings

165

5.6.3?In Unity modellieren

165

5.6.4?Prozedurale Mesh-Generierung

166

5.6.5?Level Of Detail

166

5.6.5.1?LODGroups

167

5.6.5.2?LOD-Qualitätseinstellungen

168

5.7?2D in Unity

168

5.7.1?Sprites

169

5.7.1.1?Sprite Editor

171

5.7.1.2?Sprite Packer

172

5.7.2?SpriteRenderer

174

5.7.2.1?Darstellungsreihenfolgen von Sprites

175

5.7.2.2?Sprite-Shader

176

5.7.3?Parallex Scrolling

177

6 Kameras, die Augen des Spielers

180

6.1?Die Kamera

180

6.1.1?Komponenten eines Kamera-Objektes

182

6.1.2?HDR – High Dynamic Range-Rendering

182

6.1.2.1?Rückwandeln mit Tonemapping

183

6.1.2.2?Abarbeitungsreihenfolge festlegen

184

6.1.3?Linearer- und Gamma-Farbraum

185

6.1.3.1?Die Gamma-Korrektur

185

6.1.3.2?Linear-Space und Gamma-Space in Unity

186

6.2?Kamerasteuerung

188

6.2.1?Statische Kamera

188

6.2.2?Parenting-Kamera

188

6.2.3?Kamera-Skripte

189

6.2.3.1?Kamera-Skripte programmieren

189

6.3?ScreenPointToRay

191

6.4?Mehrere Kameras

191

6.4.1?Kamerawechsel

191

6.4.2?Split-Screen

193

6.4.3?Einfache Minimap

194

6.4.4?Render Texture

195

6.5?Image Effects

197

6.5.1?Beispiel: Haus bei Nacht

197

6.6?Skybox

199

6.6.1?Mehrere Skyboxen gleichzeitig einsetzen

200

6.6.2?Skybox selber erstellen

201

6.7?Occlusion Culling

202

6.7.1?Occluder Static und Occludee Static

203

6.7.2?Occlusion Culling erstellen

204

7 Licht und Schatten

206

7.1?Ambient Light

206

7.2?Lichtarten

207

7.2.1?Directional Light

208

7.2.2?Point Light

209

7.2.3?Spot Light

209

7.2.4?Area Light

210

7.3?Schatten

211

7.3.1?Einfluss des MeshRenderers auf Schatten

212

7.4?Light Cookies

213

7.4.1?Import Settings eines Light Cookies

213

7.4.2?Light Cookies und Point Lights

214

7.5?Light Halos

215

7.5.1?Unabhängige Halos

216

7.6?Lens Flares

216

7.6.1?Eigene Lens Flares

217

7.7?Projector

217

7.7.1?Standard Projectors

217

7.8?Lightmapping

219

7.8.1?Light Probes

221

7.9?Rendering Paths

223

7.9.1?Forward Rendering

224

7.9.2?Vertex Lit

225

7.9.3?Deferred Lighting

226

7.10?Global Illumination

227

7.10.1?Baked GI

227

7.10.2?Precomputed Realtime GI

228

7.11?Reflexionen (Spiegelungen)

228

7.11.1?Reflection Probes

229

7.12?Qualitätseinstellungen

232

7.12.1?Quality Settings

232

7.12.2?Qualitätsstufen per Code festlegen

232

8 Physik in Unity

234

8.1?Physikberechnung

234

8.2?Rigidbodies

235

8.2.1?Rigidbodies kennenlernen

236

8.2.2?Masseschwerpunkt

237

8.2.3?Kräfte und Drehmomente zufügen

238

8.2.3.1?AddForce-Methode

238

8.2.3.2?AddTorque-Methode

239

8.2.3.3?ConstantForce-Komponente

241

8.3?Kollisionen

241

8.3.1?Collider

241

8.3.1.1?Mesh Collider

242

8.3.1.2?Collider modifizieren

243

8.3.1.3?OnCollision-Methoden

244

8.3.2?Trigger

245

8.3.3?Static Collider

246

8.3.4?Kollisionen mit schnellen Objekten

246

8.3.5?Terrain Collider

248

8.3.6?Layer-basierende Kollisionserkennung

248

8.3.7?Mit Layer-Masken arbeiten

248

8.4?Wheel Collider

250

8.4.1?Wheel Friction Curve

251

8.4.2?Entwicklung einer Fahrzeugsteuerung

253

8.4.2.1?CarController.cs

258

8.4.3?Autokonfiguration

260

8.4.4?Fahrzeugstabilität

262

8.5?Physic Materials

263

8.6?Joints

264

8.6.1?Fixed Joint

264

8.6.2?Spring Joint

264

8.6.3?Hinge Joint

264

8.7?Raycasting

265

8.8?Character Controller

266

8.8.1?SimpleMove

267

8.8.2?Move

268

8.8.3?Kräfte zufügen

269

8.8.4?Einfacher First Person Controller

270

8.9?2D-Physik

272

8.9.1?OnCollision2D- und OnTrigger2D-Methoden

273

8.9.2?2D Physic Effectors

275

9 Maus, Tastatur, Touch

276

9.1?Virtuelle Achsen und Tasten

276

9.1.1?Der Input-Manager

276

9.1.2?Virtuelle Achsen

278

9.1.3?Virtuelle Tasten

278

9.1.4?Steuern mit Mauseingaben

279

9.1.5?Joystick-Inputs

279

9.1.6?Anlegen neuer Inputs

280

9.2?Achsen- und Tasteneingaben auswerten

280

9.2.1?GetAxis

280

9.2.2?GetButton

281

9.3?Tastatureingaben auswerten

282

9.3.1?GetKey

282

9.3.2?anyKey

282

9.4?Mauseingaben auswerten

283

9.4.1?GetMouseButton

283

9.4.2?mousePosition

284

9.4.3?Mauszeiger ändern

285

9.5?Touch-Eingaben auswerten

286

9.5.1?Der Touch-Typ

286

9.5.2?Input.touches

287

9.5.3?TouchCount

287

9.5.4?GetTouch

288

9.5.5?CrossPlatformInput

288

9.6?Beschleunigungssensor auswerten

290

9.6.1?Input.acceleration

290

9.6.2?Tiefpass-Filter

291

9.7?Steuerungen bei Mehrspieler-Games

292

9.7.1?Split-Screen-Steuerung

292

9.7.2?Netzwerkspiele

293

10 Audio

294

10.1?AudioListener

294

10.2?AudioSource

295

10.2.1?Durch Mauern hören verhindern

297

10.2.2?Sound starten und stoppen

299

10.2.3?Temporäre AudioSource

300

10.3?AudioClip

301

10.3.1?Länge ermitteln

301

10.4?Reverb Zone

301

10.5?Filter

303

10.6?Audio Mixer

303

10.6.1?Das Audio Mixer-Fenster

303

10.6.1.1?Die Audio-Steuerungseinheit

305

10.6.2?Audiosignalwege

307

10.6.2.1?Send & Receive

308

10.6.2.2?Duck Volume

309

10.6.3?Mit Snapshots arbeiten

311

10.6.4?Views erstellen

312

11 Partikeleffekte mit Shuriken

314

11.1?Editor-Fenster

315

11.2?Particle Effect Control

316

11.3?Numerische Parametervarianten

316

11.4?Farbparameter-Varianten

317

11.5?Default-Modul

317

11.6?Effekt-Module

318

11.6.1?Emission

319

11.6.2?Shape

319

11.6.2.1?Sphere

319

11.6.2.2?HemiSphere

319

11.6.2.3?Cone

319

11.6.2.4?Box

320

11.6.2.5?Mesh

320

11.6.3?Velocity over Lifetime

320

11.6.4?Limit Velocity over Lifetime

321

11.6.5?Force over Lifetime

321

11.6.6?Color over Lifetime

321

11.6.7?Color by Speed

321

11.6.8?Size over Lifetime

322

11.6.9?Size by Speed

322

11.6.10?Rotation over Lifetime

322

11.6.11?Rotation by Speed

322

11.6.12?External Forces

322

11.6.13?Collision

323

11.6.13.1?Planes

323

11.6.13.2?World

324

11.6.14?Sub Emitter

324

11.6.15?Texture-Sheet-Animation

324

11.6.16?Renderer

325

11.6.16.1?Billboard

326

11.6.16.2?Stretched Billboard

326

11.6.16.3?Horizontal Billboard

326

11.6.16.4?Vertical Billboard

326

11.6.16.5?Mesh

327

11.7?Partikelemission starten, stoppen und unterbrechen

327

11.7.1?Play

327

11.7.2?Stop

328

11.7.3?Pause

328

11.7.4?enableEmission

328

11.8?OnParticleCollision

328

11.8.1?GetCollisionEvents

329

11.9?Feuer erstellen

329

11.9.1?Materials erstellen

330

11.9.2?Feuer-Partikelsystem

331

11.9.3?Rauch-Partikelsystem

334

11.10?Wassertropfen erstellen

337

11.10.1?Tropfen-Material erstellen

337

11.10.2?Wassertropfen-Partikelsystem

338

11.10.3?Kollisionspartikelsystem

340

11.10.4?Kollisionssound

342

12 Landschaften gestalten

344

12.1?Was Terrains können und wo die Grenzen liegen

345

12.2?Terrainhöhe verändern

345

12.2.1?Pinsel

346

12.2.2?Oberflächen anheben und senken

346

12.2.3?Plateaus und Schluchten erstellen

347

12.2.4?Oberflächen weicher machen

348

12.2.5?Heightmaps

348

12.2.5.1?Reale Landschaften als Vorlagen nutzen

349

12.3?Terrain texturieren

350

12.3.1?Textur-Pinsel

351

12.3.2?Texturen verwalten

351

12.4?Bäume und Sträucher

353

12.4.1?Bedienung des Place Tree-Tools

353

12.4.2?Wälder erstellen

354

12.4.3?Mit Bäumen kollidieren

354

12.5?Gräser und Details hinzufügen

355

12.5.1?Detail-Meshs

355

12.5.2?Gräser

356

12.5.3?Quelldaten nachladen

357

12.6?Terrain-Einstellungen

357

12.6.1?Base Terrain

358

12.6.2?Resolution

358

12.6.3?Tree & Details Objects

359

12.6.4?Wind Settings

359

12.6.5?Zur Laufzeit Terrain-Eigenschaften verändern

360

12.7?Der Weg zum perfekten Terrain

361

12.8?Gewässer

362

13 Wind Zones

364

13.1?Spherical vs. Directional

365

13.2?Wind Zone – Eigenschaften

366

13.3?Frische Brise

367

13.4?Turbine

367

14 GUI

368

14.1?Das UI-System uGUI

369

14.1.1?Canvas

369

14.1.1.1?Render Modes

370

14.1.1.2?Canvas Scaler

372

14.1.2?RectTransform

373

14.1.2.1?Anchors

375

14.1.3?UI-Sprite Import

377

14.1.4?Grafische Controls

378

14.1.4.1?Text

378

14.1.4.2?Image

379

14.1.4.3?Raw Image

380

14.1.4.4?Panel

380

14.1.4.5?Effects

380

14.1.5?Interaktive Controls

381

14.1.5.1?Button

384

14.1.5.2?InputField

385

14.1.5.3?Toggle und Toggle Group

385

14.1.5.4?Slider

386

14.1.5.5?Scrollbar

387

14.1.6?Controls designen

387

14.1.7?Animationen in uGUI

388

14.1.8?Event Trigger

389

14.2?Screen-Klasse

390

14.2.1?Schriftgröße dem Bildschirm anpassen

391

14.3?OnGUI-Programmierung

391

14.3.1?GUI

392

14.3.1.1?Label

392

14.3.1.2?Button und RepeatButton

393

14.3.1.3?TextField und TextArea

393

14.3.1.4?Subfenster

394

14.3.2?GUILayout

395

14.3.2.1?Ausrichtung festlegen

395

14.3.3?GUIStyle und GUISkin

396

15 Prefabs

398

15.1?Prefabs erstellen und nutzen

398

15.2?Prefab-Instanzen erzeugen

398

15.2.1?Instanzen per Code erstellen

399

15.2.2?Instanzen weiter bearbeiten

399

15.3?Prefabs ersetzen und zurücksetzen

400

16 Internet und Datenbanken

402

16.1?Die WWW-Klasse

402

16.1.1?Rückgabewert-Formate

403

16.1.2?Parameter übergeben

404

16.1.2.1?WWWForm

404

16.2?Datenbank-Kommunikation

405

16.2.1?Daten in einer Datenbank speichern

405

16.2.2?Daten von einer Datenbank abfragen

406

16.2.3?Rückgabewerte parsen

408

16.2.4?Datenhaltung in eigenen Datentypen

408

16.2.5?HighscoreCommunication.cs

410

16.2.6?Datenbankverbindung in PHP

412

17 Animationen

414

17.1?Allgemeiner Animation-Workflow

415

17.2?Animationen erstellen

415

17.2.1?Animation View

416

17.2.2?Curves vs. Dope Sheet

417

17.2.3?Animationsaufnahme

417

17.2.3.1?Ansicht im Animation-Fenster anpassen

418

17.2.3.2?Sprite-Animationen

418

17.2.3.3?Root Motion-Kurven erstellen

421

17.2.4?Beispiel Fallgatter-Animation

422

17.3?Animationen importieren

423

17.3.1?Rig

424

17.3.1.1?Generic

424

17.3.1.2?Humanoid

424

17.3.2?Animationen

426

17.3.2.1?Animationen aufteilen

426

17.3.2.2?Importierte Animation-Clips bearbeiten

427

17.3.2.3?Mask

429

17.3.2.4?Events

429

17.4?Animationen einbinden

429

17.4.1?Animator Controller

429

17.4.1.1?Animation States erstellen

430

17.4.1.2?Transitions – Animation States wechseln

431

17.4.1.3?Any State nutzen

433

17.4.1.4?Blend Trees

433

17.4.1.5?Layer und Avatar Masks

434

17.4.1.6?Sub-State Machines

436

17.4.1.7?State Machine Behaviours

441

17.4.2?Animator-Komponente

445

17.4.3?Beispiel Fallgatter: Animator Controller

446

17.5?Controller-Skripte

448

17.5.1?Parameter des Animator Controllers setzen

448

17.5.1.1?Mit Hash-Werten arbeiten

449

17.5.2?Animation States abfragen

449

17.5.3?Beispiel Fallgatter Controller-Skript

450

17.6?Animation Events

452

18 Künstliche Intelligenz

454

18.1?NavMeshAgent

455

18.1.1?Eigenschaften der Navigationskomponente

456

18.1.2?Zielpunkt zuweisen

456

18.1.3?Pfadsuche unterbrechen und fortsetzen

457

18.2?NavigationMesh

457

18.2.1?Object Tab

459

18.2.2?Bake Tab

459

18.2.3?Areas Tab

460

18.3?NavMeshObstacle

461

18.4?Off-Mesh Link

462

18.4.1?Automatische Off-Mesh Links

462

18.4.2?Manuelle Off-Mesh Links

463

18.5?Point & Click-Steuerung für Maus und Touch

464

19 Fehlersuche und Performance

468

19.1?Fehlersuche

468

19.1.1?Breakpoints

469

19.1.2?Variablen beobachten

470

19.1.3?Console Tab nutzen

470

19.1.4?GUI- und GUILayout nutzen

471

19.2?Performance

471

19.2.1?Rendering-Statistik

472

19.2.2?Batching-Verfahren

473

19.2.3?Analyse mit dem Profiler

475

19.2.4?Echtzeit-Analyse auf Endgeräten

476

19.2.4.1?Webplayer-Game remote analysieren

476

19.2.4.2?Android-Game remote analysieren

477

19.2.4.3?iOS-Game remote analysieren

477

20 Spiele erstellen und publizieren

478

20.1?Der Build-Prozess

478

20.1.1?Szenen des Spiels

479

20.1.2?Plattformen

480

20.1.3?Notwendige SDKs

480

20.1.4?Plattformspezifische Optionen

481

20.1.5?Developer Builds

481

20.1.5.1?Autoconnect Profiler

481

20.1.5.2?Script Debugging

481

20.2?Publizieren

482

20.2.1?App

483

20.2.2?Browser-Game

483

20.2.3?Desktop-Anwendung

484

21 Erstes Beispiel-Game: 2D-Touch-Game

486

21.1?Projekt und Szene

486

21.1.1?Die Kamera

488

21.1.2?Texturen importieren und Sprites definieren

488

21.2?Gespenster und Hintergrund

490

21.2.1?Gespenster animieren

493

21.2.2?Gespenster laufen lassen

497

21.2.3?Gespenster-Prefab erstellen

499

21.3?Der GameController

499

21.3.1?Der Spawner

500

21.3.2?Level-Anzeige

502

21.3.3?Der Input-Controller

503

21.3.4?Game Over-UI

505

21.3.5?Hintergrundmusik

511

21.4?Punkte zählen

512

21.5?Spielende

513

21.6?Spiel erstellen

514

22 Zweites Beispiel-Game: 3D Dungeon Crawler

516

22.1?Level-Design

517

22.1.1?Modellimport

518

22.1.1.1?Allgemeine Import Settings

518

22.1.1.2?bat_03 Import Settings

518

22.1.1.3?crate_01 Import Settings

519

22.1.1.4?stone_01 Import Settings

519

22.1.1.5?floor_01 Import Settings

519

22.1.2?Materials konfigurieren

519

22.1.3?Prefabs erstellen

520

22.1.3.1?Wall Prefab

520

22.1.3.2?Torch Prefab

520

22.1.3.3?Wall_Torch Prefab

521

22.1.3.4?Floor Prefab

521

22.1.3.5?Ceiling Prefab

522

22.1.4?Dungeon erstellen

522

22.1.4.1?Boden erstellen

522

22.1.4.2?Wände erstellen

523

22.1.4.3?Decke erstellen

524

22.1.4.4?Allgemeine Licht-Einstellungen

524

22.1.4.5?Fackelbeleuchtung

524

22.1.4.6?Akzent-Beleuchtung

526

22.1.5?Dekoration erstellen

527

22.1.5.1?Crate Prefab

527

22.1.5.2?Barrel Prefabs

527

22.2?Inventarsystem erstellen

528

22.2.1?Verwaltungslogik

528

22.2.1.1?InventoryItem.cs

532

22.2.1.2?CreateInventoryItem.cs

532

22.2.1.3?Inventory.cs

533

22.2.1.4?PickableItem.cs

535

22.2.2?Oberfläche des Inventarsystems

535

22.2.3?Inventar-Items

539

22.2.3.1?HoverEffects.cs

544

22.3?Game Controller

545

22.4?Spieler erstellen

546

22.4.1?Lebensverwaltung

547

22.4.1.1?LifePointController.cs

555

22.4.1.2?HealthController.cs

556

22.4.1.3?PlayerHealth.cs

556

22.4.2?Spielersteuerung

558

22.4.2.1?PlayerController.cs

563

22.4.2.2?Footsteps.cs

564

22.4.2.3?Shooting.cs

565

22.4.3?Wurfstein entwickeln

566

22.4.3.1?StoneBehaviour.cs

569

22.4.3.2?Zerberstenden Stein konfigurieren

570

22.4.4?Lautstärke steuern

572

22.5?Quest erstellen

573

22.5.1?Erfahrungspunkte verwalten

573

22.5.1.1?EPController.cs

574

22.5.2?Questgeber erstellen

575

22.5.2.1?WaterQuest.cs

580

22.5.2.2?WaterdropSound.cs

582

22.5.2.3?InGameMenu.cs

582

22.5.3?Sub-Quest erstellen

583

22.5.3.1?AnimateDoor.cs

587

22.6?Gegner erstellen

589

22.6.1?Model-, Rig- und Animationsimport

589

22.6.2?Komponenten und Prefab konfigurieren

590

22.6.3?Animator Controller erstellen

592

22.6.4?NavMesh erstellen

594

22.6.5?Umgebung und Feinde erkennen

595

22.6.5.1?EnemySonar.cs

596

22.6.6?Gesundheitszustand verwalten

597

22.6.6.1?EnemyHealth.cs

600

22.6.7?Künstliche Intelligenz entwickeln

601

22.6.7.1?EnemyAI.cs

607

22.7?Eröffnungsszene

610

22.7.1?Szene erstellen

610

22.7.2?Startmenü-Logik erstellen

611

22.7.2.1?MainMenu.cs

612

22.7.3?Menü-GUI erstellen

613

22.8?Web-Player-Anpassungen

615

22.8.1?Web-Player-Template ändern

615

22.8.2?Quit-Methode im Web-Player abfangen

615

22.9?Finale Einstellungen

616

22.10?So könnte es weitergehen

619

23 Der Produktionsprozess in der Spieleentwicklung

620

23.1?Die Produktionsphasen

620

23.1.1?Ideen- und Konzeptionsphase

621

23.1.2?Planungsphase

621

23.1.3?Entwicklungsphase

621

23.1.4?Testphase

622

23.1.5?Veröffentlichung und Postproduktion

622

23.2?Das Game-Design-Dokument

622

24 Schlusswort

624

Index

626

 

© 2009-2024 ciando GmbH