Fachprojekt DET Unity 2D. technische universität dortmund. Unity 2D. Kevin Gregull - LS11. Kevin Gregull



Ähnliche Dokumente
Unity 4 Teil II. Universität zu Köln Softwaretechnologie II (Teil 1): Simulation und 3D Programmierung Dozent: Manfred Thaller Marvin Busch

!Herzlich Willkommen!

MORE Profile. Pass- und Lizenzverwaltungssystem. Stand: MORE Projects GmbH

Downloadfehler in DEHSt-VPSMail. Workaround zum Umgang mit einem Downloadfehler

teamsync Kurzanleitung

Erstellen von x-y-diagrammen in OpenOffice.calc

Erweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen:

Gezielt über Folien hinweg springen

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom b

1. Aktionen-Palette durch "Fenster /Aktionen ALT+F9" öffnen. 2. Anlegen eines neuen Set über "Neues Set..." (über das kleine Dreieck zu erreichen)

AutoCAD Dienstprogramm zur Lizenzübertragung

Informationen zum neuen Studmail häufige Fragen

Erstellen einer Collage. Zuerst ein leeres Dokument erzeugen, auf dem alle anderen Bilder zusammengefügt werden sollen (über [Datei] > [Neu])

1. Allgemein Speichern und Zwischenspeichern des Designs Auswahl der zu bearbeitenden Seite Text ergänzen Textgrösse ändern 3

Tipps und Tricks zu den Updates

Nützliche Tipps für Einsteiger

Animationen erstellen

TYPO3 Tipps und Tricks

Windows. Workshop Internet-Explorer: Arbeiten mit Favoriten, Teil 1

1) Farbsteuergerät in der Nikobus-Software unter Modul zufügen hinzufügen.

Installation OMNIKEY 3121 USB

Zwischenablage (Bilder, Texte,...)

II. Daten sichern und wiederherstellen 1. Daten sichern

Mit der Maus im Menü links auf den Menüpunkt 'Seiten' gehen und auf 'Erstellen klicken.

Lehrer: Einschreibemethoden

Konvertieren von Settingsdateien

Professionelle Seminare im Bereich MS-Office

Schuljahreswechsel im Schul-Webportal

Terminabgleich mit Mobiltelefonen

Anleitung über den Umgang mit Schildern

Advoware mit VPN Zugriff lokaler Server / PC auf externe Datenbank

Informatik Kurs Simulation. Hilfe für den Consideo Modeler

Da die Bedienung des Editors viele Möglichkeiten aufweist, aber auch etwas Übung voraussetzt, haben wir ihm ein eigenes Unterkapitel gewidmet.

Inhaltserzeichnis. Datenübernahme

Umwandeln und Exportieren von Adobe-Illustrator-Dateien in Illustrator für Artcut

KeePass Anleitung. 1.0Allgemeine Informationen zu Keepass. KeePass unter Windows7

So gehts Schritt-für-Schritt-Anleitung

2. ERSTELLEN VON APPS MIT DEM ADT PLUGIN VON ECLIPSE

4. BEZIEHUNGEN ZWISCHEN TABELLEN

Installation, Einrichtung, Nutzung von PHOCA DOWNLOAD. Download-Links... 2

Erweiterungen Webportal

Teaser-Bilder erstellen mit GIMP. Bildbearbeitung mit GIMP 1

Anwendertreffen 20./21. Juni

Schrittweise Anleitung zur Erstellung einer Angebotseite 1. In Ihrem Dashboard klicken Sie auf Neu anlegen, um eine neue Seite zu erstellen.

PocketPC.ch Review. SBSH ilauncher 3.1. Erstelldatum: 3. Dezember 2007 Letzte Änderung: 3. Dezember PocketPC.ch_Review_iLauncher.

LDAP Konfiguration nach einem Update auf Version 6.3 Version 1.2 Stand: 23. Januar 2012 Copyright MATESO GmbH

ACDSee 10. ACDSee 10: Fotos gruppieren und schneller durchsuchen. Was ist Gruppieren? Fotos gruppieren. Das Inhaltsverzeichnis zum Gruppieren nutzen

Bevor Sie mit dem Wechsel Ihres Sicherheitsmediums beginnen können, sollten Sie die folgenden Punkte beachten oder überprüfen:

Wichtige Hinweise zu den neuen Orientierungshilfen der Architekten-/Objektplanerverträge

1. Legen Sie die mitgelieferte CD in ihr Laufwerk des PC, diese startet dann automatisch mit folgenden Fenster, klicken Sie nun English an.

Xcode/Cocoa/Objective-C Crashkurs Programmieren unter Mac OS X

Graphic Coding. Klausur. 9. Februar Kurs A

Einfügen von Bildern innerhalb eines Beitrages

Präventionsforum+ Erfahrungsaustausch. HANDOUT GRUPPEN-ADMINISTRATOREN Anlage zum Endnutzer-Handbuch. Stand: Änderungen vorbehalten

Erweitertes Kalkulationsfenster

Nikon Message Center

1 Einleitung. Lernziele. automatische Antworten bei Abwesenheit senden. Einstellungen für automatische Antworten Lerndauer. 4 Minuten.

Mediator 9 - Lernprogramm

Informationen zur Verwendung von Visual Studio und cmake

Übung Bilder verschmelzen

Animierte Fotoshow mit Fotostory 3

Abamsoft Finos im Zusammenspiel mit shop to date von DATA BECKER

Word 2010 Schnellbausteine

, dadurch wird der andere Modus eingestellt, also es sieht dann so aus

NOXON Connect Bedienungsanleitung Manual

Software Release Notes

3D Objekte in einen Clip integrieren

Flyer, Sharepics usw. mit LibreOffice oder OpenOffice erstellen

MSDE 2000 mit Service Pack 3a

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang

Enigmail Konfiguration

Prodanet ProductManager WinEdition

Arbeiten mit UMLed und Delphi

Installationsanleitung für das KKL bzw. AGV4000 Interface

Das sogenannte Beamen ist auch in EEP möglich ohne das Zusatzprogramm Beamer. Zwar etwas umständlicher aber es funktioniert

5.2 Neue Projekte erstellen

Bedienungsanleitung Anlassteilnehmer (Vereinslisten)

Cmsbox Kurzanleitung. Das Wichtigste in Kürze

FuxMedia Programm im Netzwerk einrichten am Beispiel von Windows 7

Advance Steel Nachverfolgung von Änderungen während der Revisionsphasen im Projekt

Software Engineering. Zur Architektur der Applikation Data Repository. Franz-Josef Elmer, Universität Basel, HS 2015

ZAHLUNGSAVIS. Im Zahlungsprogrammteil automatisch erstellen

GS-Buchhalter/GS-Office 2015 Saldovorträge in folgenden Wirtschaftsjahren erfassen

Handbuch B4000+ Preset Manager

Facebook I-Frame Tabs mit Papoo Plugin erstellen und verwalten

Bedienung des Web-Portales der Sportbergbetriebe

Vorbereitung einer Grafik zum Druck einer Glotze aus, Stadion an! -Zaunfahne Torsten Bunde, Stand 5. Juli 2014

PayPal PLUS für Shopware

Installationsanleitung für Update SC-Line

Anleitung zum Prüfen von WebDAV

Step by Step Softwareverteilung unter Novell. von Christian Bartl

ipad+nutzung%im%unterricht% %Bedienung%und%Methodik% % von!sarah!berner,!christine!frank!und!peter!kosak! Maria7Ward7Gymnasium!Augsburg!

Schulung Marketing Engine Thema : Einrichtung der App

Stand: Adressnummern ändern Modulbeschreibung

Nach dem Einstecken des mdentity wird die Anwendung nicht gestartet

Ein neues Outlook Konto können Sie im Control Panel über den Eintrag Mail erstellen.

Feiertage in Marvin hinterlegen

Inhalt. 1 Einleitung AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER

Photopaint - Linsen. (Speichere deine Arbeit von Anfang an regelmäßig unter dem Namen Linsen.cpt )

Transkript:

- LS11

Motivation - Allgemein» Das komplette Team von ID Software in 1992 2

Motivation - Allgemein» Ein Teil des Teams von Respawn Entertainment 3

Motivation - Unity 1. Warum Unity?» Kostenfreie Version» Ermöglicht einfachen Einstieg» Sowohl für Designer, als auch Entwickler geeignet» Editor frei programmier- und erweiterbar Verschiedene Programmiersprachen: 1. C# 2. JavaScript 3. Boo 4

Motivation - Unity» Beispiel: Cities Skylines (Unity) 5

Motivation - Unity» Beispiel: The Forest (Unity) 6

Motivation - Unity» Beispiel: Hitman GO (Unity) 7

Motivation - Unity» Beispiel: Rust (Unity) 8

Motivation - Unity» Und viele weitere: 9

Überblick 1. 2. 3. 4. 5. 6. 7. Erste Schritte Editor & Engine Grundlagen Grafiken & Sprites 2D Physik Scripting Benutzeroberfläche SVN und Kollaboration 10

Erste Schritte 1. Unity herunterladen» Wir nutzen Unity 5.0.0 http://unity3d.com/get-unity/download 2. Auf www.unity3d.com registrieren» https://accounts.unity3d.com/sign-up 3. Unity installieren und einloggen» Personal Edition auswählen! 11

Erste Schritte 1. Unity erstellt beim ersten Start ein neues Projekt 2. Unity nutzt integrierten Editor» MonoDevelop 3. Der Editor lässt sich auch auf Visual Studio umstellen» Edit Preferences External Tools 12

Editor - UI» Der Unity Editor 13

Editor - Definitionen 1. Project» Eine Sammlung von Assets, die ein Spiel ausmachen 2. Assets (Project Browser)» Alle Grafiken, Models, Scripts, Prefabs eines Projektes 3. Hierarchy» Ordnet GameObjects anderen GameObjects unter» Ist nützlich, um eine Gruppe von GameObjects zu bewegen, oder Prefabs zu erzeugen 14

Editor - Definitionen 4. GameObjects» Oberklasse aller Elemente in einer Scene» Enthällt Komponenten, welche das GO erweitern 5. Prefabs» Eine, als Asset gespeicherte Gruppierung, von GameObjects» Änderungen in diesen, wirken sich auf Instanzen aus 15

Editor - Definitionen 6. Scene» Eine Hierarchy von GameObjects (also ein Level ) Kann z.b. auch ein Menü sein Es ist immer eine Scene im Spiel aktiv Scene kann mit Scripting gewechselt werden 7. Camera» Zu jeder Zeit ist im Spiel eine Kamera aktiv» Dies ist die Sicht aus der das Spiel gezeigt wird» Wird über Script oder Hierarchy bewegt 16

Editor - Definitionen 8. Components» Bestandteile eines GameObjects» Erweitert das Grundobjekt um Funktionen wie: Collider, Animator, Scripts, Renderer, Transform 9. Transform» Jedes GameObject hat eine Transform Komponente, welche die Position des Objektes bestimmt 17

Editor - Grundlagen 1. Scene View vs. Game View» Scene View ist die Bearbeitungsansicht inkl. Gizmos. Wird am besten mit mittlerer Maustaste gesteuert» Game View ist die Liveansicht des Spiels Hier kann direkt im Editor ein Level des Spiels, mit einem Druck auf den Play Button, getestet werden Änderungen während des Playtests sind immernoch in der Scene View möglich, diese sind allerdings nur für Debugzwecke und werden nicht übernommen 18

Editor - Grundlagen 1. Layers» Layer können frei definiert und GameObjects zugeordnet werden, haben dabei aber nichts mit der Zeichenreihenfolge zu tun (hierfür Sorting Layers ) Sie können aber ausgeblendet werden 2. Tags» Können von Scripts abgefragt und gesucht werden Suche alle GameObjects mit dem Tag Enemy! Hat das aktuelle GameObject den Tag Player? 19

Grafiken & Sprites 1. Unity bietet seit einiger Zeit dedizierte 2D Tools» Orthographische Kamera und Scene View» Sprites statt 3D-Quads» Sprite Editor & Sprite Slicer» Sorting Layers» Eigene 2D Physik 20

Grafiken & Sprites 1. Grafiken in den Asset-Ordner ziehen» Im 2D Modus werden diese automatisch als Sprites importiert 2. Auswahl der Grafik erlaubt das Editieren im Inspector» Hier findet sich ebenfalls der Zugriff auf den Sprite Editor Mit diesem kann die Grafik in verschiedene einzelne Sprites geschnitten werden 21

Grafiken & Sprites 1. Die Sprites aus dem Asset-Ordner können direkt, ohne weiteres, in die Scene View gezogen werden (dies geht allerdings nur im Orthographischen Scene View Modus) 2. Ist das Sprite platziert kann es via Sorting Layer die Zeichenreihenfolge verändern.» Dies definiert welche Objekte sich im Vordergrund oder Hintergrund befinden und von anderen überlagert werden. 22

Sprite Animations 1. Können erzeugt werden, indem mehrfach selektierte Sprites aus dem Project Browser in die Szene gezogen werden.» Unity erzeugt dabei automatisch einen Animation Clip und einen Animator Controller, sowie ein GameObject. 2. Animationen können manuell auch durch das Erstellen eines Animations Clips im Animation Window erstellt werden.» Hierbei wird nun die Eigenschaft: Sprite Renderer Sprite über eine Samplerate von 12 animiert. (Unity Standard) 23

Animator Controller 1. Dieser verknüpft die Animation Clips mit dem GameObject.» Im Animator finden sich States und Transitions 2. States entsprechen den einzelnen Clips der Animation» Zudem gibt es Default und Any State 3. Transitions sind die Übergänge zwischen den Animationen.» Es werden Bedingungen für den Übergang vergeben» Diese arbeiten mit Animator Parametern, welche im Animator erstellt und in Scripts referenziert werden. 24

2D Physics 1. Physikalische Berechnungen basieren auf Collidern» Durch Objekte ohne Collider kann der Spieler durchlaufen oder durchfallen» 2D Collider gibt es in verschiedenen Ausführungen Box Collider 2D Circle Collider 2D Edge Collider 2D Polygon Collider 2D 25

2D Physics 1. Box und Circle Collider haben einfache Optionen zum definieren der Collidergröße 2. Edge und Polygon Collider können manuel gezeichnet werden, dabei umschließen Polygon Collider eine Fläche» Edit Collider Button im Inspector (strg löscht Punkte) 3. Collider können Trigger für Scripte sein» Dafür die muss die Flag Is Trigger gesetzt sein Dies deaktiviert die Collision (mehr dazu später) 26

2D Physics 1. Static Geometry vs. dynamic Geometry» Static Geometry sind GameObjects welche lediglich einen Collider besitzen und sollten unter keinen Umständen zur Runtime bewegt werden» Dynamic Geometry sind GameObjects welche zusätzlich noch eine Rigidbody 2D Komponente enthalten Diese werden durch Kräfte bewegt (u.a. Schwerkraft) Soll das Object nur per Script bewegt werden, kann die Is Kinematic Flag gesetzt werden 27

Scripting 1. Scripte werden mit Rechtsklick im Project Browser erstellt 2. Bevorzugt sollte mit C# entwickelt werden» Klassen & Funktionen fangen mit Großbuchstaben an» Variablen fangen klein an, ansonsten CamelCase 3. Das reine Erstellen und Schreiben eines Scriptes hat keinerlei Funktion (abgesehen von Editor Scripts)» Jedes Script gehört immer zu einem GameObject this ist die Referenz auf das Script & GameObject 28

Scripting 1. Öffentliche Membervariablen können über den Inspector zugewiesen werden» Dazu zählen Strings, Floats, Ints, Arrays, Colors, Bools, Enums Aber auch ganze GameObjects, Transforms und sogar andere Scripts und Komponenten» Auf diese Weise können GameObject übergreifende Referenzen hergestellt werden und Scripts mit verschiedenen Optionen wieder verwendet werden 29

Scripting 1. Zugriff auf Komponenten des GameObjects an welchem das Script hängt» this.getcomponent<komponente>() Einige Komponenten: SpriteRenderer, GameObject, Transform, Camera, BoxCollider2D, Rigidbody2D & Scriptklassen 2. Zugriff auf Komponenten von Parent & Children (Hierarchy)» this.getcomponentsinparent<komponente>()» this.getcomponentsinchildren<komponente>() 30

Scripting 1. Start, Update und andere Callbacks» Awake - Wenn die Scriptinstanz geladen wird» Start - Kurz bevor Update das erste Mal ausgefürt wird» Update - Wird in jedem Frame aufgerufen» FixedUpdate - Wird in jedem Physik-Frame aufgerufen» OnBecameVisible - Wenn das Objekt sichtbar wird 2. Die meisten dieser Callbacks haben keine Parameter» void Start() { }» Für weitere Infos hilft ein Blick in die ScriptReference 31

Scripting 1. Collision und Trigger Callbacks (liefert auch den Collider)» OnCollisionEnter2D In dem Frame in dem eine Kollision auftritt» OnCollisionStay2D In allen Frames in denen eine Kollision anhält» OnCollisionExit2D In dem Frame in dem die Kollision endet 2. Alle Callbacks sind auch für Trigger vorhanden:» OnTriggerEnter2D, OnTriggerStay2D, OnTriggerExit2D 32

Scripting 1. Zeitliche Abfolge in Scripten ist ebenfalls möglich» Invoke(string methodname,float seconds) Ruft eine Funktion nach einer Zeit auf» InvokeRepeating(string method,float start,float repeat) Ruft eine Funktion wiederholt auf» Coroutines Funktionen, welche mit yield unterbrochen werden können [Weitere Informationen] 33

Scripting 1. Nicht alle Elemente in der Szene können von Anfang an platziert werden» Z.b. eine Rakete, die abgefeuert wird 2. Dies kann mit Instantiate gelöst weren» Instantiate(original[,position,rotation]) Gibt dabei das neue GameObject zurück 3. Da dies viel Rechenzeit kostet, bietet es sich manchmal an, Objekte die abseits des Levels platziert werden zu nutzen 34

Scripting 1. Instanzierte Objekte sind schwerer zu referenzieren» Sie sind vor Runtime nicht vorhanden und können nicht per Inspector zugewiesen werden 2. Hier bietet sich die Suche nach Name oder Tag an» GameObject.Find(string name);» GameObject.FindWithTag(string tag);» GameObject.FindGameObjectsWithTag(string tag); Erstere geben random ein Object zurück, letzteres gibt eine Liste von passenden Objekten zurück 35

Scripting 1. Tastatur, Maus & Gamepads» Grundsätzlich kann über die statische Klasse Input alles nötige abgefragt werden: GetKeyUp, GetKeyDown, GetKey, GetMouseButton, GetMouseButtonDown, GetMouseButtonUp, GetTouch» Diese bietet aber auch eine Highlevel API für Keybindings und Axen, welche in Project Settings Input definiert werden: GetAxis, GetButton, GetButtonDown, GetButtonUp 36

Scripting 1. Viele Variablen werden durch Properties [Siehe hier] nach außen repräsentiert (C# Feature)» Diese geben allerdings eine Kopie des Wertes zurück und keine Referenz auf den Wert selbst, daher verlaufen Änderungen an dieser Rückgabe im Nichts» Ein Beispiel: this.transform.position.set(x,y,z) this.transform.position=new Vector3(x,y,z) 37

Scripting 1. Scripting Tipps und Tricks:» Delegates Für eventuelle eigene Eventhandler» Attributes Können vor Variablen oder Klassen stehen [ExecuteInEditMode] - Führt das Script im Editor aus [Range(0,10)] - Folgende Variable hat einen Slider» Für alles weitere gibt es umfangreiche Tutorials 38

Scripting 1. Auch die Erweiterung des Editors selbst ist möglich» Zum erstellen von Tools, eigenen Level Editoren etc, die den Designprozess des Spiels erleichern 2. Erlaubt das Zeichnen von eigenen GUIs und Gizmos im Editor, sowie das Verändern von Inspectorfenstern» Diese Scripts müssen im Ordner Editor liegen 3. Weitere Infos hierzu findet ihr in der Dokumentation 39

Benutzerinterface 1. Das Unity Benutzerinferface» Basiert auf einem Canvas und einem ausgeklügelten Verankerungssystem, mit dem Elemente in ihrem Parent auch bei Skalierung ausgerichtet werden können» UI Elemente sind die einzigen GameObjects die statt der Transform Komponente eine RectTransform Komponente besitzen, welche die Anker steuert 40

Benutzerinterface 1. Es stehen eine Reihe von UI Elementen zur Verfügung:» Canvas, Text, Button, Slider, Image, ScrollRect, Panel, 2. Alle UI Elemente werden immer einem Canvas untergeordnet» Dieser zeichnet die Elemente nach ihrer Reihenfolge in der Hierarchy Dabei wird das oberste Element zuerst, also in unterster Ebene, gezeichnet 41

Benutzerinterface» Einfacher Mittel-Anker mit der PowerFlower 42

Benutzerinterface» Einfacher UntenRechts-Anker 43

Benutzerinterface» Einfacher skalierender Anker 44

Benutzerinterface» Andere Form eines skalierenden Ankers 45

Benutzerinterface 1. Die PowerFlower kann als ganzes verschoben werden oder aber auch zwei- bzw. viergeteilt werden, um die Anker Prozentual am Vater-Transform auszurichten» Unabhängig davon werden feste Abstandswerte von diesen Ankern zum Pivot des Objektes definiert, so kann Unity die Position des Objektes errechnen Das Interface verändert sich je nach Teilung der PowerFlower 46

Benutzerinterface 1. Das neue UI hat ebenfalls ein robustes Eventssystem» Hier können in Buttons und Slidern visuell Callbackfunktionen definiert werden, die den Wert oder eben den Klick weiterverarbeiten» Es können aber auch weitere Callbacks über die Event Trigger Komponente hinzugefügt werden 2. Für alles weitere hat Unity Tutorials zur Verfügung gestellt 47

SVN und Kollaboration 1. Unity besitzt kein eingebautes SVN Tool» Es können welche über den Asset Store heruntergeladen werden, aber TortoiseSVN/GIT tut es auch 2. Es ist nicht ganz trivial Szenen zu mergen» Hier gibt es entweder die Möglichkeit in getrennten Szenen und Prefabs zu arbeiten, oder das neue Smart Merge von Unity zu verwenden. (Siehe nächste Seite) 3. Alles auf die Ignoreliste, außer Assets & ProjectSettings 48

Unity Smart Merge 1. In der neusten Version von Unity, gibt es die Möglichkeit, ein Unity eigenes Merge Tool in GIT und SVN festzulegen.» Dieses heißt YAMLMerge und erlaubt es Szenen und Prefabs semantisch korrekt zu mergen.» Es wird bereits bei der Installation von Unity geladen und kann wie folgt in GIT/SVN zugefügt werden: http://docs.unity3d.com/manual/smartmerge.html 49

Referenzen - [1] http://docs.unity3d.com/scriptreference/ - [2] http://docs.unity3d.com/manual/ - [3] http://unity3d.com/learn/tutorials/modules - [4] Unity Vortrag - Jan Quadflieg [TU Dortmund] 50

Fragen? Ansonsten viel Erfolg!