unity game vol. 1 - mentoring 2019 · unity game vol. 1 mentoring 2019 diane hanke, toni wirth,...

85
Unity Game Vol. 1 Mentoring 2019 Diane Hanke, Toni Wirth, Sönke Schmidt & Thushan Satkunanathan Freie Universität Berlin 26. April 2019

Upload: others

Post on 30-Apr-2020

20 views

Category:

Documents


0 download

TRANSCRIPT

Unity Game Vol. 1Mentoring 2019

Diane Hanke, Toni Wirth, Sönke Schmidt & Thushan SatkunanathanFreie Universität Berlin

26. April 2019

Inhalt

ProgrammEinführung und MotivationUnity installierenEinführung in C#

IDEDatentypenif-else-BedingungSchleifenArray, Liste, DictionaryFunktionen

ObjekteKlassenVererbung

Unity EngineLoginProjekt anlegenAufbau der Engine

Asset StoreTerrain erstellenWolkenplateaus

,

FU Berlin, Unity Game, 26. April 2019 2

Inhalt

ProgrammEinführung und MotivationUnity installierenEinführung in C#

IDEDatentypenif-else-BedingungSchleifenArray, Liste, DictionaryFunktionen

ObjekteKlassenVererbung

Unity EngineLoginProjekt anlegenAufbau der Engine

Asset StoreTerrain erstellenWolkenplateaus

,

FU Berlin, Unity Game, 26. April 2019 3

Programm

1. Blockkurs2. Blockkurs

3. Blockkurs

Man, ist das schön hier!Der Weg zum ersten eigenen Spiel!É Einführung und MotivationÉ Unity installierenÉ Einführung in C#É Unity-EngineÉ Asset-StoreÉ Terrain erstellenÉ Wolkenplateaus

,

FU Berlin, Unity Game, 26. April 2019 4

Programm

1. Blockkurs

2. Blockkurs3. Blockkurs

Unser Held wird lebendig!Willkommen in deiner neuen Welt!É C# und die Unity APIÉ Player erstellenÉ SpielerbewegungÉ Gegner platzierenÉ Interaktionsobjekte

,

FU Berlin, Unity Game, 26. April 2019 5

Programm

1. Blockkurs

2. Blockkurs

3. Blockkurs

Die erste Welt war schon ganz nett!Aber jetzt wird es richtig fancy!É GUI gestaltenÉ KampfsystemÉ BildschirmausgabeÉ SoundeinbindungÉ Feinschliff

,

FU Berlin, Unity Game, 26. April 2019 6

Inhalt

ProgrammEinführung und MotivationUnity installierenEinführung in C#

IDEDatentypenif-else-BedingungSchleifenArray, Liste, DictionaryFunktionen

ObjekteKlassenVererbung

Unity EngineLoginProjekt anlegenAufbau der Engine

Asset StoreTerrain erstellenWolkenplateaus

,

FU Berlin, Unity Game, 26. April 2019 7

Einführung und Motivation

Was ist mit Unity möglich?

,

FU Berlin, Unity Game, 26. April 2019 8

Was wir mit euch vorhaben

,

FU Berlin, Unity Game, 26. April 2019 9

Inhalt

ProgrammEinführung und MotivationUnity installierenEinführung in C#

IDEDatentypenif-else-BedingungSchleifenArray, Liste, DictionaryFunktionen

ObjekteKlassenVererbung

Unity EngineLoginProjekt anlegenAufbau der Engine

Asset StoreTerrain erstellenWolkenplateaus

,

FU Berlin, Unity Game, 26. April 2019 10

Unity installieren

É online über: https://unity3d.com

,

FU Berlin, Unity Game, 26. April 2019 11

Unity einrichten

1. SchrittÉ Website öffnenÉ Unity-ID anlegen

,

FU Berlin, Unity Game, 26. April 2019 12

Unity einrichten

2. SchrittÉ Personal

downloaden

,

FU Berlin, Unity Game, 26. April 2019 13

Unity einrichten

3. SchrittÉ Download

Installer anklicken

,

FU Berlin, Unity Game, 26. April 2019 14

Unity einrichten

4. SchrittÉ die ersten drei

brauchen wirÉ Rest: optional

,

FU Berlin, Unity Game, 26. April 2019 15

Inhalt

ProgrammEinführung und MotivationUnity installierenEinführung in C#

IDEDatentypenif-else-BedingungSchleifenArray, Liste, DictionaryFunktionen

ObjekteKlassenVererbung

Unity EngineLoginProjekt anlegenAufbau der Engine

Asset StoreTerrain erstellenWolkenplateaus

,

FU Berlin, Unity Game, 26. April 2019 16

Einführung in C#

Zum selbstständigen Lernen:É https://unity3d.com/de/learnÉ https://msdn.microsoft.com/de-de/library/67ef8sbd.aspx

,

FU Berlin, Unity Game, 26. April 2019 17

Einführung in C#

Motivation: Interaktion mit der Umwelt

1 using UnityEngine;2 using System.Collections;

4 public class PlayerController: MonoBehavior {5 public float speed;6 private Rigidbody rb;

8 void Start () {9 rb = GetComponent<Rigidbody>();

10 }11 }

Mit einer Anweisung wird in Unity eine Figur bewegt (Code unvollständig!).

,

FU Berlin, Unity Game, 26. April 2019 18

Inhalt

ProgrammEinführung und MotivationUnity installierenEinführung in C#

IDEDatentypenif-else-BedingungSchleifenArray, Liste, DictionaryFunktionen

ObjekteKlassenVererbung

Unity EngineLoginProjekt anlegenAufbau der Engine

Asset StoreTerrain erstellenWolkenplateaus

,

FU Berlin, Unity Game, 26. April 2019 19

IDE

Integrated Development Environment... ist eine Sammlung von Anwendungsprogrammen,mit denen die Aufgaben in der Softwareentwicklungmöglichst schnell und effektiv bearbeitet werdenkönnen.

VisualStudio

MonoDevelop

,

FU Berlin, Unity Game, 26. April 2019 20

Inhalt

ProgrammEinführung und MotivationUnity installierenEinführung in C#

IDEDatentypenif-else-BedingungSchleifenArray, Liste, DictionaryFunktionen

ObjekteKlassenVererbung

Unity EngineLoginProjekt anlegenAufbau der Engine

Asset StoreTerrain erstellenWolkenplateaus

,

FU Berlin, Unity Game, 26. April 2019 21

Datentypen

Typ Minimum Maximum Größe VZsbyte −128 127 8 Bit jashort −32768 32767 16 Bit jaint −2147483648 2147483647 32 Bit jalong −9223372036854775807922337203685477580764 Bit jabyte 0 255 8 Bit neinushort 0 65535 16 Bit neinuint 0 4294968295 32 Bit neinulong 0 1844674407370955161564 Bit nein

,

FU Berlin, Unity Game, 26. April 2019 22

Inhalt

ProgrammEinführung und MotivationUnity installierenEinführung in C#

IDEDatentypenif-else-BedingungSchleifenArray, Liste, DictionaryFunktionen

ObjekteKlassenVererbung

Unity EngineLoginProjekt anlegenAufbau der Engine

Asset StoreTerrain erstellenWolkenplateaus

,

FU Berlin, Unity Game, 26. April 2019 23

if-else-Bedingung

1 bool condition = true;

3 if (condition) {4 Console.WriteLine("The variable is set to true.");5 }6 else {7 Console.WriteLine("The variable is set to false.");8 }

Eine if-Anweisung ermittelt, welche Anweisung, basierend auf dem Werteines booleschen Ausdrucks, auszuführen ist. Hier wird die boolescheVariable condition auf true initialisiert und dann in der if-Anweisungüberprüft. Die Ausgabe lautet „The variable is set to true“.

,

FU Berlin, Unity Game, 26. April 2019 24

if-else-Bedingung

1 int m = 10;2 int n = 20;

4 if (m>10) {5 if (n>20)6 Console.WriteLine("Result1");7 }8 else {9 Console.WriteLine("Result2");

10 }

Wie würde hier die Ausgabe lauten?

Die Ausgabe lautet: „Result2“.

,

FU Berlin, Unity Game, 26. April 2019 25

if-else-Bedingung

1 int m = 10;2 int n = 20;

4 if (m>10) {5 if (n>20)6 Console.WriteLine("Result1");7 }8 else {9 Console.WriteLine("Result2");

10 }

Wie würde hier die Ausgabe lauten?Die Ausgabe lautet: „Result2“.

,

FU Berlin, Unity Game, 26. April 2019 25

if-else-Bedingung

Wofür könnte man dies in der Spieleentwicklung nutzen?

,

FU Berlin, Unity Game, 26. April 2019 26

switch-Anweisung

1 public class Example2 {3 public static void Main()4 {5 int caseSwitch = 1;

7 switch (caseSwitch)8 {9 case 1:

10 Console.WriteLine("Case 1");11 break;12 case 2:13 Console.WriteLine("Case 2");14 break;15 default:16 Console.WriteLine("Default case");17 break;18 }19 }20 }

Die Anweisung switch wird häufig als Alternative zu einem if-else-Konstruktverwendet, wenn ein einzelner Ausdruck mit drei oder mehr Bedingungengetestet wird.

,

FU Berlin, Unity Game, 26. April 2019 27

switch vs. if-else

1 public enum Color { Red, Green, Blue }

3 public class Example4 {5 public static void Main()6 {7 Color c = (Color) (new Random()).

Next(0, 3);8 switch (c)9 {

10 case Color.Red:11 Console.WriteLine("red");12 break;13 case Color.Green:14 Console.WriteLine("green");15 break;16 case Color.Blue:17 Console.WriteLine("blue");18 break;19 default:20 Console.WriteLine("unknown.");21 break;22 }23 }

1 public enum Color { Red, Green, Blue }

3 public class Example4 {5 public static void Main()6 {7 Color c = (Color) (new Random()).Next

(0, 3);8 if (c == Color.Red)9 Console.WriteLine("red");

10 else if (c == Color.Green)11 Console.WriteLine("green");12 else if (c == Color.Blue)13 Console.WriteLine("blue");14 else15 Console.WriteLine("unknown.");16 }17 }

,

FU Berlin, Unity Game, 26. April 2019 28

switch-Anweisung

Wofür könnte man dies in der Spieleentwicklung nutzen?

,

FU Berlin, Unity Game, 26. April 2019 29

Inhalt

ProgrammEinführung und MotivationUnity installierenEinführung in C#

IDEDatentypenif-else-BedingungSchleifenArray, Liste, DictionaryFunktionen

ObjekteKlassenVererbung

Unity EngineLoginProjekt anlegenAufbau der Engine

Asset StoreTerrain erstellenWolkenplateaus

,

FU Berlin, Unity Game, 26. April 2019 30

while-Schleife

1 class WhileTest {2 static void Main() {3 int n=1;4 while (n<6) {5 Console.WriteLine("Current value of n is {0}",n);6 n++;7 }8 }9 }

10 /* Ausgabe der while-Schleife11 Current value of n is 112 Current value of n is 213 Current value of n is 314 Current value of n is 415 Current value of n is 516 */

Führt eine Anweisung wiederholt aus, bis die angegebeneAbbruchbedingung (der Ausdruck) zu 0 (null) ausgewertet wird.

,

FU Berlin, Unity Game, 26. April 2019 31

while-Schleife

Wofür könnte man dies in der Spieleentwicklung nutzen?

,

FU Berlin, Unity Game, 26. April 2019 32

for-Schleife

1 for (int i=0; i<=5; i++) {2 Console.WriteLine(i);3 }4 /* Ausgabe der for-Schleife5 06 17 28 39 4

10 511 */

Mit einer for-Schleife kann eine Anweisung oder ein Anweisungsblockwiederholt ausgeführt werden, bis ein angegebener Ausdruck false ergibt.Dies ist beispielsweise für das Durchlaufen von Arrays nützlich, in denenvorhergesagt wird, wie oft die Schleife durchlaufen wird.

,

FU Berlin, Unity Game, 26. April 2019 33

for-Schleife

Wofür könnte man dies in der Spieleentwicklung nutzen?

,

FU Berlin, Unity Game, 26. April 2019 34

Inhalt

ProgrammEinführung und MotivationUnity installierenEinführung in C#

IDEDatentypenif-else-BedingungSchleifenArray, Liste, DictionaryFunktionen

ObjekteKlassenVererbung

Unity EngineLoginProjekt anlegenAufbau der Engine

Asset StoreTerrain erstellenWolkenplateaus

,

FU Berlin, Unity Game, 26. April 2019 35

Array

1 // Declare a single-dimensional array2 int[] array1 = new int[5];

4 // Declare a set array elements value5 int[] array2 = new int[] {1,3,5,7,9};

7 // alternative Syntax8 int[] array3 = {1,3,5,7,9};

Man kann mehrere Variablen des gleichen Typs in dem abstraktenDatentyp Array speichern.Ein Array wird deklariert, indem der Datentyp seiner Elementeangegeben wird.

,

FU Berlin, Unity Game, 26. April 2019 36

Liste

1 System.Collections.Generic.List<string> pizza = new System.Collections.Generic.List<string>();

3 pizza.Add("bacon");4 pizza.Add("baccheeseon");5 pizza.Add("tomato");

7 pizza.Insert(1,"ananas");

9 foreach (string ingredient in pizza) {10 System.Console.WriteLine(ingredient);11 }

Stellt eine stark typisierte Liste von Objekten dar, auf die über einen Indexzugegriffen werden kann.Die Klasse Liste stellt Methoden zum Durchsuchen, Sortieren undBearbeiten bereit.

,

FU Berlin, Unity Game, 26. April 2019 37

Arrays vs. Listen

É Arrays sind dadurch gekennzeichnet, dass sie eine feste Größe haben.É Listen wachsen dynamisch. Die Anzahl der zu speichernden Objekte

muss vorher nicht bekannt sein.

,

FU Berlin, Unity Game, 26. April 2019 38

Arrays und Listen

Wofür könnte man dies in der Spieleentwicklung nutzen?

,

FU Berlin, Unity Game, 26. April 2019 39

Dictionary

1 Dictionary<string, string> opwenWidth = new Dictionary<string, string>();

3 opwenWidth.Add("txt","notepad.exe");4 opwenWidth.Add("bmp","paint.exe");5 opwenWidth.Add("dib","paint.exe");6 opwenWidth.Add("rtf","wordpad.exe");

8 /*9 Key = txt, Value = notepad.exe

10 Key = bmp, Value = paint.exe11 Key = dib, Value = paint.exe12 Key = rtf, Value = wordpad.exe13 */

Ein Dictionary besteht aus Schlüssel-Objekt-Paaren.Zu einem bestimmten Schlüssel gehört immer ein Objekt. Man kann alsodie Schlüssel auf die Objekte „abbilden“.

,

FU Berlin, Unity Game, 26. April 2019 40

Dictionary

Wofür könnte man dies in der Spieleentwicklung nutzen?

,

FU Berlin, Unity Game, 26. April 2019 41

Inhalt

ProgrammEinführung und MotivationUnity installierenEinführung in C#

IDEDatentypenif-else-BedingungSchleifenArray, Liste, DictionaryFunktionen

ObjekteKlassenVererbung

Unity EngineLoginProjekt anlegenAufbau der Engine

Asset StoreTerrain erstellenWolkenplateaus

,

FU Berlin, Unity Game, 26. April 2019 42

Funktionen

1 public class Programm {2 void funktionsname() {3 Console.WriteLine("Herzlich Willkommen zum Unity-Kurs");4 }5 }

Eine Funktion ist ein Codeblock, die eine oder mehrere Anweisungenenthalten kann. Diese Funktion kann im Programm aufgerufen werden.Hier in diesem Beispiel enthält die Funktion funktionsname() dieAnweisung einen String auszugeben.

,

FU Berlin, Unity Game, 26. April 2019 43

Funktionen

Wie könnte eine Funktion in der Spieleentwicklung lauten?

,

FU Berlin, Unity Game, 26. April 2019 44

Inhalt

ProgrammEinführung und MotivationUnity installierenEinführung in C#

IDEDatentypenif-else-BedingungSchleifenArray, Liste, DictionaryFunktionen

ObjekteKlassenVererbung

Unity EngineLoginProjekt anlegenAufbau der Engine

Asset StoreTerrain erstellenWolkenplateaus

,

FU Berlin, Unity Game, 26. April 2019 45

Objekte

Ein Objekt ist die Modellierung für einen Ausschnitt aus der realen Welt. Eshat einen Zustand, der durch Attribute, und ein Verhalten, das durchMethoden beschrieben wird.É Attribute: Beschreiben bestimmte Eigenschaften eines Objekts.É Methoden: Beschreiben bestimmte Funktionen eines Objekts.

,

FU Berlin, Unity Game, 26. April 2019 46

Inhalt

ProgrammEinführung und MotivationUnity installierenEinführung in C#

IDEDatentypenif-else-BedingungSchleifenArray, Liste, DictionaryFunktionen

ObjekteKlassenVererbung

Unity EngineLoginProjekt anlegenAufbau der Engine

Asset StoreTerrain erstellenWolkenplateaus

,

FU Berlin, Unity Game, 26. April 2019 47

Klassen

Das Erstellen von Klassen dient derKategorisierung von Objekten.(Bauplan des Hauses)

Eine Klasse beschreibt alle Objektemit gleichartigen Attributen undMethoden. (Haus)

,

FU Berlin, Unity Game, 26. April 2019 48

Objekte und Klassen

Was könnte innerhalb der Spieleentwicklung eine Klasse sein? Wie könntenObjekte dieser Klasse lauten?

,

FU Berlin, Unity Game, 26. April 2019 49

Inhalt

ProgrammEinführung und MotivationUnity installierenEinführung in C#

IDEDatentypenif-else-BedingungSchleifenArray, Liste, DictionaryFunktionen

ObjekteKlassenVererbung

Unity EngineLoginProjekt anlegenAufbau der Engine

Asset StoreTerrain erstellenWolkenplateaus

,

FU Berlin, Unity Game, 26. April 2019 50

Vererbung

Vererbung ermöglicht die Erstellung neuer Klassen, die in anderen Klassendefiniertes Verhalten wiederverwenden, erweitern und ändern.

Die Klasse, deren Attribute und Methoden vererbt werden, wirdBasisklasse genannt, und die Klasse, die diese Attribute und Methodenerbt, wird abgeleitete Klasse genannt.

1 // Basisklasse2 public class Tier {3 // In dieser Klasse sollen alle Gemeinsamkeiten aufgelistet werden.4 // Sie ist somit sehr allgemein erhalten.5 }

1 // abgeleitete Klasse2 public class Fuchs extends Tier {3 // In dieser Klasse sollen alle Eigenschaften eines Fuchs aufgelistet

werden.4 // Sie ist somit spezieller als die Basisklasse.5 }

,

FU Berlin, Unity Game, 26. April 2019 51

Vererbung

1 // Programm2 class Zoo {3 static void main() {4 Tier abstractopticus = new Tier(); // ein Objekt der Basisklasse erstellen5 Fuchs rex = new Fuchs(); // ein Objekt der katzenartigen Tiere erstellen6 }7 }

,

FU Berlin, Unity Game, 26. April 2019 52

Nach der Pause folgt die Einführung in die Unity Engine.

,

FU Berlin, Unity Game, 26. April 2019 53

Inhalt

ProgrammEinführung und MotivationUnity installierenEinführung in C#

IDEDatentypenif-else-BedingungSchleifenArray, Liste, DictionaryFunktionen

ObjekteKlassenVererbung

Unity EngineLoginProjekt anlegenAufbau der Engine

Asset StoreTerrain erstellenWolkenplateaus

,

FU Berlin, Unity Game, 26. April 2019 54

Inhalt

ProgrammEinführung und MotivationUnity installierenEinführung in C#

IDEDatentypenif-else-BedingungSchleifenArray, Liste, DictionaryFunktionen

ObjekteKlassenVererbung

Unity EngineLoginProjekt anlegenAufbau der Engine

Asset StoreTerrain erstellenWolkenplateaus

,

FU Berlin, Unity Game, 26. April 2019 55

Login

É Wir starten Unity

É Registrierung:

É E-Mail:[email protected]

É Passwort: Fugast123

,

FU Berlin, Unity Game, 26. April 2019 56

Inhalt

ProgrammEinführung und MotivationUnity installierenEinführung in C#

IDEDatentypenif-else-BedingungSchleifenArray, Liste, DictionaryFunktionen

ObjekteKlassenVererbung

Unity EngineLoginProjekt anlegenAufbau der Engine

Asset StoreTerrain erstellenWolkenplateaus

,

FU Berlin, Unity Game, 26. April 2019 57

Projekt anlegen

Projekt erstellen

É Titel des Projekts

É Speicherort wählen (in Z:\)

É 3D Projekt erstellen

,

FU Berlin, Unity Game, 26. April 2019 58

Inhalt

ProgrammEinführung und MotivationUnity installierenEinführung in C#

IDEDatentypenif-else-BedingungSchleifenArray, Liste, DictionaryFunktionen

ObjekteKlassenVererbung

Unity EngineLoginProjekt anlegenAufbau der Engine

Asset StoreTerrain erstellenWolkenplateaus

,

FU Berlin, Unity Game, 26. April 2019 59

Aufbau der Engine

,

FU Berlin, Unity Game, 26. April 2019 60

Aufbau der Engine

Gameobject → 3D Object → Cube

,

FU Berlin, Unity Game, 26. April 2019 61

Aufbau der Engine

,

FU Berlin, Unity Game, 26. April 2019 62

Aufbau der Engine

Feld Funktion Beschreibung1 greifen in der Szene nach links, rechts, oben,

unten bewegen (zum SchwenkenRechtsklick gedrückt halten)

2 Objekt greifen Objekt (Assert) um die x-, y-, z-Achsebewegen

3 rotieren Objekt (Assert) um die eigene Achse ro-tieren lassen

4 skalieren Objekt (Assert) skalieren5 gleichmäßig skalieren Objekt (Assert) gleichmäßig um x- und

z-Achse skalieren (für Objekte geeignet,bei denen Höhe irrelevant ist, z.B. Bo-den)

In neueren Versionen stehen euch zwei weitere Werkzeuge zur Verfügung.,

FU Berlin, Unity Game, 26. April 2019 63

Aufbau der Engine

,

FU Berlin, Unity Game, 26. April 2019 64

Aufbau der Engine

,

FU Berlin, Unity Game, 26. April 2019 65

Aufbau der Engine

,

FU Berlin, Unity Game, 26. April 2019 66

Inhalt

ProgrammEinführung und MotivationUnity installierenEinführung in C#

IDEDatentypenif-else-BedingungSchleifenArray, Liste, DictionaryFunktionen

ObjekteKlassenVererbung

Unity EngineLoginProjekt anlegenAufbau der Engine

Asset StoreTerrain erstellenWolkenplateaus

,

FU Berlin, Unity Game, 26. April 2019 67

Asset Store

https://assetstore.unity.com/

,

FU Berlin, Unity Game, 26. April 2019 68

Nach der Pause beginnen wir mit unserer Spielwelt!

,

FU Berlin, Unity Game, 26. April 2019 69

Inhalt

ProgrammEinführung und MotivationUnity installierenEinführung in C#

IDEDatentypenif-else-BedingungSchleifenArray, Liste, DictionaryFunktionen

ObjekteKlassenVererbung

Unity EngineLoginProjekt anlegenAufbau der Engine

Asset StoreTerrain erstellenWolkenplateaus

,

FU Berlin, Unity Game, 26. April 2019 70

Terrain erstellen

Asset:https://assetstore.unity.com/packages/3d/environments/fantasy/

glowing-forest-79686

,

FU Berlin, Unity Game, 26. April 2019 71

Terrain erstellen

É GameObject > 3D Object > TerrainÉ Terrain Width und Terrain Length auf 100

,

FU Berlin, Unity Game, 26. April 2019 72

Wände

Erstellt Wände um euer Terrain, um zu verhindern, dass der Player vomTerrain fallen kann!

Wir haben dies mit Bergketten gelöst.

,

FU Berlin, Unity Game, 26. April 2019 73

Design-Tools

Tipp: Indem du die UMSCH-Taste und SHIFT gedrückt hältst, kannst du diejeweiligen Effekte umkehren (also z.B. das Terrain absenken, anstatt esanzuheben, um einen See zu gestalten).

,

FU Berlin, Unity Game, 26. April 2019 74

Design-Tools

,

FU Berlin, Unity Game, 26. April 2019 75

Design-Tools

Feld Funktion Beschreibung1 Raise / Lower-Tool Oberfläche anheben und absenken2 Paint Height-Tool Oberfläche auf festen Wert anheben und

absenken3 Smooth Height-Tool Übergänge abrunden, Hügel abflachen, wei-

che Kurven gestalten4 Paint Texture-Tool Terrain mit Texturen bemalen5 Place Tree-Tool Bäume, Sträucher und andere platzierte

Objekte hinzufügen6 Paint Details-Tool statische Meshes hinzufügen (Steine, Grä-

ser, etc.)7 Settings diverse weitere Einstellungen

,

FU Berlin, Unity Game, 26. April 2019 76

Assets

Bäume:https://assetstore.unity.com/packages/3d/vegetation/trees/

stylized-trees-low-poly-49916

Büsche:https://assetstore.unity.com/packages/3d/vegetation/plants/

hand-painted-bush-pack-43075

Steine:https://assetstore.unity.com/packages/3d/environments/fantasy/

a-piece-of-nature-40538

,

FU Berlin, Unity Game, 26. April 2019 77

Himmel

É Lighting-Fenster aktivieren: Window > Lighting > SettingsÉ Skybox Material anpassen

Asset:https://assetstore.unity.com/packages/2d/textures-materials/sky/

toony-skies-11020

,

FU Berlin, Unity Game, 26. April 2019 78

Inhalt

ProgrammEinführung und MotivationUnity installierenEinführung in C#

IDEDatentypenif-else-BedingungSchleifenArray, Liste, DictionaryFunktionen

ObjekteKlassenVererbung

Unity EngineLoginProjekt anlegenAufbau der Engine

Asset StoreTerrain erstellenWolkenplateaus

,

FU Berlin, Unity Game, 26. April 2019 79

Wolkenplateaus

Asset:https://assetstore.unity.com/packages/3d/3le-low-poly-cloud-pack-65911

,

FU Berlin, Unity Game, 26. April 2019 80

Wolkenplateaus

É Lieblingswolken wählen und daraus 7 Plateaus errichten

Hinweis: Achtet darauf, dass mindestens zwei Plateaus groß genug sind,um später Gegner auf diesen Ebenen platzieren zu können, denen sichDschäns stellen muss.

,

FU Berlin, Unity Game, 26. April 2019 81

Mesh Collider

Dient der collision detection. Um das jeweilige Objekt wird ein Collidergebaut, der an das Asset angepasst ist. Wir können also überprüfen, obunser Objekt mit einem anderen in Berührung kommt.

É Wolkenplateau als Objekt auswählenÉ Add Component > Physics > Mesh Collider

Hinweis: Ihr könnt ein Plateau aus mehreren Wolkenteilenzusammenbauen. Lasst eurer Kreativität freien Lauf. Achtet dann darauf,dass ihr wirklich dem gesamten Plateau den Mesh Collider hinzufügt.

,

FU Berlin, Unity Game, 26. April 2019 82

Ausblick 2. Woche

1. Blockkurs

2. Blockkurs3. Blockkurs

Unser Held wird lebendig!Willkommen in deiner neuen Welt!É C# und die Unity APIÉ Player erstellenÉ SpielerbewegungÉ Gegner platzierenÉ Interaktionsobjekte

,

FU Berlin, Unity Game, 26. April 2019 83

Referenzen

É https://upload.wikimedia.org/wikipedia/commons/8/8a/Official_unity_logo.png

É https://www.offgamers.com/blog/wp-content/uploads/2015/11/hearthstone-logo-310x310.jpg

É https://upload.wikimedia.org/wikipedia/en/1/1b/Umbrella_Corps_cover_art.jpg

É http://cfile22.uf.tistory.com/image/2502EA4E58A723D1314642É https://i0.wp.com/timemanagementninja.com/wp-content/uploads/

2014/02/Pause-Button-Key.jpg?resize=600%2C361&ssl=1É https://docs.microsoft.com/de-de/dotnet/csharp/language-reference/

keywords/switchÉ https://seeklogo.com/images/V/

visual-studio-2015-logo-31D5DD049E-seeklogo.com.jpgÉ https://upload.wikimedia.org/wikipedia/commons/thumb/8/8d/

Monodevelop_Logo.svg/1024px-Monodevelop_Logo.svg.png

,

FU Berlin, Unity Game, 26. April 2019 84