Unity und C#: Einstieg ins Game-Engineering

via Udemy

Go to Course: https://www.udemy.com/course/game-engineering/

Introduction

Certainly! Here's a comprehensive review and recommendation for the Unity course on Coursera based on the detailed course content provided: --- **Review and Recommendation for the Unity Game Development Course on Coursera** Are you interested in diving into the exciting world of game development? This comprehensive Coursera course offers a thorough introduction to the fundamentals of creating interactive virtual worlds with Unity, one of the most popular game engines today. Whether you are a complete beginner or have some experience with coding and 3D modeling, this course guides you step-by-step through the entire workflow of game development. **What You Will Learn:** - **Unity Essentials:** Start with the basics of Unity's interface, project organization, and scripting using C#. The course covers key concepts such as components, GameObjects, and the Unity message system, giving you a solid foundation to build upon. - **3D and 2D Scene Building:** Learn how to import models from Blender, organize objects hierarchically, and work seamlessly in both 3D and 2D environments. The course addresses common challenges like model scaling, coordinate systems, and asset management. - **Materials, Textures, and Lighting:** Discover how to create realistic materials, apply textures, and use shaders with Unity's Universal Render Pipeline (URP). The lighting section covers both direct and indirect lighting, reflections, shadow configuration, and special effects like transparent objects. - **Animation and Movement:** Explore animation techniques, including the use of animation clips, state transitions, and skeletal rigs. The course also introduces movement scripting with techniques like Lerp and iTween, as well as path animations. - **Physics and AI:** Understand Unity’s physics system with colliders, rigidbodies, and collision detection. The AI segment emphasizes navigation meshes, NPC detection, and pathfinding. - **Camera Control:** Master camera perspectives (first, third, second person), constraints, switching between cameras, and creating dynamic camera effects for immersive gameplay. - **2D Graphics and UI:** Delve into sprite animation, UI layout systems, Canvas management, and responsive design. This enables you to craft engaging HUDs, menus, and other user interface components. - **Data Management:** Learn about serialization, saving/loading games, ScriptableObjects, and scene management to handle game states efficiently across multiple scenes and sessions. **Strengths of This Course:** - **Hands-On Approach:** The course emphasizes practical learning with real-time coding, asset importing, scene setup, and debugging. Interactive quizzes reinforce key concepts. - **Comprehensive Content:** It covers the entire development pipeline, from initial project setup to final asset optimization. - **Real-World Applications:** Besides game creation, the skills taught are applicable for simulations, product visualizations, and interactive applications. - **Progressive Learning:** Each topic builds on the previous, making complex workflows approachable for beginners. - **Expert Guidance:** Detailed explanations of functions, typical problems, and best practices make it a valuable resource for learners at any stage. **Who Should Enroll:** - Aspiring game developers looking for a detailed, beginner-friendly introduction. - Artists and designers interested in understanding the technical aspects of game creation. - Programmers wanting to expand their skills into interactive media. - Educators and hobbyists seeking a structured learning pathway on Unity. **Final Verdict:** This course is highly recommended for anyone eager to develop their own interactive experiences using Unity. Its thorough coverage, practical exercises, and clear instruction make it a top choice for foundational and intermediate game development skills. By completing this course, you will gain a comprehensive understanding of Unity’s core features, enabling you to turn your ideas into fully functional digital worlds. **Start today and unlock your potential in game development!** ---

Overview

In diesem Kurs geht es um die Grundlagen der Spielentwicklung in Unity. Dabei lernst Du virtuelle Welten aufzubauen und Programmlogik mit C# zu formulieren. Wir schauen uns Lösungswege und auch typische Probleme an, die bei der Arbeit mit Unity üblicherweise auftreten.Die einzelnen Funktionen des Programms werden Schritt für Schritt besprochen und direkt innerhalb der Software erklärt. Die jeweiligen Umsetzungsbeispiele und Übungen kannst du sofort mitmachen und so das Gelernte selbst ausprobieren.Am Ende dieses Kurses hast du einen kompletten Überblick über Unity und kennst alle wichtigen Funktionen die du brauchst um deine Inhalte umzusetzen. Beginnend bei der Frage wie du Modelle von Blender nach Unity exportierst, über die Organisation von Szenen, dem Anlegen von Animationen, Beleuchtung, Kameraeinstellungen und 2D-Grafik bis hin zur Verbindung mit Programmlogik, Physikberechnungen und Interaktionsmöglichkeiten wird der gesamte Workflow abgebildet.Themengruppen in diesem Kurs:Virtuelle Szenen mit 3D- und 2D-Modellen aufbauenObjekte per C#, Tools und künstlicher Intelligenz erzeugen, verändern und animierenMaterialien, Texturen und Shader mit der Universal Renderpipeline darstellenLichtquellen, indirektes Streulicht, Spiegelungen und Kameratechnik in Szene setzenSpieldaten von der Engine trennen, speichern und ladenNicht nur Spiele sondern auch viele andere Produkte wie z.B. Simulationen oder Produktvisualisierungen stellen hohe technische Ansprüche, die eine GameEngine erfüllt. Das in diesem Kurs erworbene Wissen lässt sich somit zur Umsetzung von Spielen wie auch zahlreichen weiteren Anwendungsgebieten nutzen.Die Kursinhalte im Detail: Einführung und SetupUnitys Lizenzmodell und InstallationLizenzen, Versionen und Module in Unity, Unity. Anmeldung & Installation. Aktivierung und Lizenz einrichten. Was ist Unity Hub? Installationprozess durchlaufen.Anbindung von Visual StudioVisual Studio als Code-Editor installieren, bestehende VS-Installation anbinden. Plattform-Ziele (nach)installieren. Problem: Keine Auto-Vervollständigung in VS.Unity-GrundlagenElemente von Unity-ProjektenStruktur eines Unity-Projekts, Projekte in Unity-Hub anlegen, Projekt-Struktur, Projektdarstellung im Editor, Problem: Objekt-Beziehungen gehen verloren, Begriff des „Assets".Ein minimales Programm in UnityCode schreiben & ausführen, Hello World, Aufbau eines minimalen Unity-Scripts.Unity-Message-MethodenWas ist sind Unity-Messages? Welche vordefinierten Messages gibt es? Sichtbarkeitsmodifikatoren. Welchen Schutzgrad brauchen Messages wie z.B. Start()? Aufbau eines minimalen Unity-Scripts.Komponenten-ArchitekturBegriff der Komponente. Fehler: "Can‘t add script component […] because the script class cannot be found."Felder, Attribute und der InspectorWas sind Felder? Feld-Werte über den Inspector steuern. Wie funktionieren Inspector-Werte technisch gesehen? Was sind „Attribute" und was bewirkt [SerializeField]?IMGUI - Einfache grafische DiagnosetoolsWas ist das IMGUI (Immediate Mode GUI)? Funktion von OnGUI().Eingabe-Elemente im IMGUIWie unterscheidet sich das IMGUI vom sonst üblichen Programmierstil in Unity? Problem: Die manuelle Angabe der Zeichnen-Koordinaten ist sehr mühsam.Interaktives Quiz zu diesem KapitelRaum und InputOrganisation von 3D-ElementenObjekte im virtuellen Raum, Game Objects als Grundtyp, GameObject und gameObject, Szenengraph und HierarchieTransform-EigenschaftObjekte im Raum transformieren, Code-Element „transform": Zugriff auf die Objekt-Position.Objekte per Code im Raum verschiebenVector3 und Vector2. Positionen zuweisen. Problem: Der Rückgabewert von Transform.position ist keine Variable und kann nicht geändert werden." [CS1612]Objekte per Code skalierenObjekte per Code rotierenZugriff auf die Rotation, Besonderheiten der Rotation, Objekt per C# um die eigene Y-Achse um 45° drehen.Wie wird ein Objekt nach vorne bewegt?Objekte hierarchisch organisierenZugriff auf die Hierarchie und Elternobjekte.Reflektion: Erkenntnisse zum „Transform"Zeitliche Verläufe mit Update und deltaTime realisierenEingaben per Input erfassen. Wie wird ein Tastendruck abgefragt?EingabeachsenSpiel-Eingaben erfassen, Input-Axes einrichten, Wie wird ein Achsensignal abgefragt?Interaktives Quiz zu diesem KapitelAssets und InstanzenKlickereignisse auf 3D-ObjektenGrundlagen Mausinteraktionen, Wie reagiert ein Objekt auf konkrete Mausinteraktionen? OnMouseUpAsButton(). Problem: Rechte Maustaste nicht identifizierbar.Modelle von Blender nach Unity portierenModell von Blender nach Unity exportieren, Welches Dateiformat für Exporte verwenden? Export-Import-AblaufProblemlösungen beim Portieren: Objektursprung und GrößenverhältnisseWo soll der Objektursprung in Blender liegen? Probleme: Größenverhältnisse zwischen Blender und Unity stimmen nicht. Unterschiedliche Koordinatensysteme. Importierte Modelle sind in Unity gedreht und skaliert.Austauschen eines lückenhaft erscheinenden ModellsProblem: Das Modell ist in Unity irgendwie löchrig.Arbeitsfluss bei der Asset-ProduktionAsset-Pipeline: Was wird wo gebaut? Allgemeine Entscheidungshilfe: Dynamik & Interaktivität. Wie sieht die Produktionspipeline für ein Maisfeld im Spiel aus?Modell-Instanzen per Code ansteuernMit Assets und Instanzen programmieren, Game Object - Instanzen, Duplikate, Instantiate(originalGO), Destroy(gameObject), DestroyImmediate(gameObject)Aktivieren und Deaktivieren von Objekten und KomponentenSetActive(zustand) vs. enabled-Eigenschaft. Problem: Meine Komponente hat kein Häkchen.Objekte suchen und findenWie findet ein GameObject ein anderes? Wie findet eine Komponente eine andere? Häufige Suchläufe. Objekte explizit koppeln.Objektkomposition per PrefabWie lassen sich Objektkompositionen wiederverwenden? Was sind Prefabs? Wie wird ein Prefab erzeugt? Eigenschaften und Verhalten von Prefab-Instanzen. Eigenschaften und Verhalten von Prefab-AssetsInteraktives Quiz zu diesem KapitelMaterial, Textur und ShaderUnterscheidung Materialien, Shader & TexturenBegriffsunterscheidung. Material in Unity. Welche Rolle spielen Shader?Render-PipelinesWas ist die Render-Pipeline (RP)? Render-Pipelines in Unity. Wie wird die Universal Render Pipeline (URP) in neuem Projekt aktiviert? Was ist der Package Manager? Umstellung auf Universal Render Pipeline. Problem: Nach Umstellung auf URP erscheinen die Szenen-Objekte pink.Shader Graph-EditorInstallation des Shader Graph per Package Manager, Wie funktioniert der Shader-Graph-Editor?Portierung von MaterialienWie wird ein Blender-Material nach Unity überführt? Texturemaps als MaterialfundamentArbeiten mit Material-AssetsWie ändert man das Material eines importierten Modells in Unity? Wie werden Material-Assets erzeugt? Wie ändert man das Material eines einzelnen Modells in der Szene? Wie ändert man ein Material per C#?Problem: Material-Änderung per Code wirkt nicht.Typische Textur-Probleme, Ausgangssituation. Probleme: Pixel tauchen auf, die in der Textur garnicht vorkommen, Texturkanten zeigen einen Farbschimmer. Wie wird eine Textur gekachelt? Pixel und Kanten werden immer geglättet. Die Textur wird verzerrt importiert.Mapping-KoordinatenUV-Koordinaten in Unity, Wie erreicht Code die UV-Koordinaten? Beispiel: 2D-Gesichter bei Klick ändern.VideotexturenInteraktives Quiz zu diesem KapitelAnimation und BewegungAnimationsprogrammierungWie fährt ein Objekt von A nach B? Lerp(von, bis, prozent). Version mit Kopplung über öffentliches Feld.Bewegungsprogrammierung mittels iTween.Installation der iTween-Bibliothek per Package Manager. Bewegung mit iTween. iTween: Easing (Bewegungsabschwächung). Wie werden Parameter an iTween übergeben? Welche Parameter unterstützt iTween.Hash?PfadanimationInstallation des iTween-Pfadeditors per Download. Wie wird eine Pfadanimation in Unity mittels iTween realisiert? Beim Loop springt die Animation.Hierarchische AnimationBones & Rigging. Produktions-Pipeline einer Bones-Animation.ClipsWie wird ein Clip-Asset abgespielt? Animation als Zustandsvisualisierung. Clips auf Zustände (States) abbilden. Zustandsübergänge (Transitions).Typische Probleme im AnimatorWie wird ein Clip im Animator wiederholt? Der Clip wirkt abgeschnitten. Eine dem FBX hinzugefügte Animation erscheint nicht als Clip.Übergänge und Parameter im AnimatorZustandswerte (Parameter). Wie löst C# den Animation-State-Wechsel aus? Fehler: Pro State einen Parameter anlegen. Was bedeuten die Standard-Zustände im Animator?Ebenen und GewichteAnimator-LayerWeitere Animationstechnik: Vertex- AnimationInteraktives Quiz zu diesem KapitelKI und PhysikÜberblick KI / AI in GamesUnitys Physik-SystemCollider: Typische Funktionen. Wann simuliert Unity Physik auf Objekten?Physiksimulation gezielt beeinflussenProblem: Explizite Transformation & Physik stören sich. isKinematic-Eigenschaft.KollisionenOnCollisionEnter und Typische Collider-FunktionenPhysik-bezogener CodeWas gehört in Update bzw. FixedUpdate? Wie werden Objekte gezielt per Physik bewegt?Kollisionsabfrage per Strahlverfolgung (Raycast)Raycast(strahl, …) und grafische Diagnose eines Raycast.Pfadfindung in UnityNavigationsprobleme in der Praxis. Was sind statische Game-Objects?Bewegung per NavMesh-SystemWas sind NavMeshes und NavAgents? Wie wird ein NavMesh in Unity erstellt? Wie wird ein NavAgent in Unity erstellt? Das Navmesh geht nicht bis zum Rand. Wie verhindert ein NavAgent dynamische Objekte?Feinderkennung durch NPCsWie sieht ein NPC ein anderes Objekt? Welche Objekte liegen im Sichtfeld des NPC?Interaktives Quiz zu diesem KapitelKamera-SteuerungSecond-Person-PerspektiveModell der „Gott"-Kamera bzw. Vogelperspektive. Blickweite vs. Clipping, LinienverkürzungPanning-Bewegung der KameraWie wird ein Panning im 3D-Raum realisiert?Third-Person-PerspektiveModell der „Cinematic"-Kamera in Beobachterperspektive. Verfolgerkamera per Parenting umsetzen.ConstraintsWas sind Constraints? Wann Constraints und wann z.B. transform.LookAt?Mehrere Kameras einsetzenWie wird ein Kamerawechsel programmiert?First-Person-PerspektiveModell der „Ego"-Kamera in Normalsicht. Wie ist ein MouseLook aufgebaut? Wie wird ein MouseLook umgesetzt?Essentielle Kamera-EigenschaftenKamera-Eigenschaften, Brennweite, Zoom und DollyExplizites RendernWie wird ein echter Spiegel realisiert?Interaktives Quiz zu diesem KapitelBeleuchtungseffekte in der Universal Render PipelineEinführung BeleuchtungRolle der Beleuchtung, Beleuchtungsarten in UnityIndirektes LichtWie wird indirektes Licht in Unity aufgesetzt?Probleme beim indirekten LichtMein Mesh empfängt kein indirektes Licht. Lightmaps ignorieren dynamische Objekte. Wie werden bewegliche Objekte indirekt beleuchtet?SpiegelungenSpiegelungen per Lichtsystem, Performance von Reflexionen verbessern.Gerichtetes LichtUmgebungslichtLicht der SkyboxPunkt- und KegellichtFlächen-LichtMaterial-EmissionenSchattenSchattenwurf konfigurieren, komplexe Schatten simulieren: Ambient OcclusionTransparenzAlpha-TransparenzProgrammierung eines FlackerlichtsInteraktives Quiz zu diesem Kapitel2D-Grafik und GUIWie unterscheidet sich 2D von 3D in Unity?Ist mein Projekt 2D oder 3D?SpritesWas sind Sprites? Sprites in der (3D-)Szene rendernAnimation von SpritesUnity-Keyframe-Animation aufsetzen2D-Physik und KollisionenCanvas-Layout-System (UGUI), Bild-Eigenschaften von Spielszenen, Bild-Eigenschaften von GUI-Elementen, Kernbestandteile von Unitys GUI-System. Wie wird das UI-Layout-System angelegt?Grundlagen des CanvasRectTransform, Werkzeuge für UI-Bearbeitung, RectTransform: Pivotpunkt und Anker.Dynamische LayoutsProblem: Elemente überlappen sich bei wenig Platz. RectTransform: Anker-Streckung. Ergebnis bei Änderung der Bildschirmgröße. Wie wird eine Vignette oder ein Bloodscreen realisiert?UI-Skalierung aufgrund der BildschirmgrößeProblem bei Größenänderung mit Inhaltsblöcken, Canvas Scaler, Prinzip von Scale With Screen Size.Skalierbare SpritesUnterschied Skalierung und Größenänderung. Was ist ein 9-Slice oder 9-Grid?AutolayoutsWie werden GUI-Elemente als Liste angeordnet?Event SystemWie wird eine Methode an einen GUI-Button gebunden?Interaktives Quiz zu diesem KapitelDaten und PersistenzHintergrund zur Notwendigkeit der DatentrennungDas Spiel als Zustandssammlung persistente und transiente Informationen. Spielmechaniken nach J. Schell (Wh. Game Design) Objekte, Attribute, Status. Inspiration: Endlicher Automat.Daten vom Szenengraph trennenWie werden Spielinhalt und Darstellung getrennt? Warum ist die strenge Trennung von Daten und Darstellung wichtig? Fehler: Datenobjekte und Engineobjekte mischenSpielobjekt durch Spieldaten steuernSonnenlichtwinkel durch Uhrzeit steuernSpeichern und Laden von Daten„Serialisierung" und „Deserialisierung". Wie wird ein Daten-Objekt in einen String konvertiert?Daten/Dateien schreiben und lesenWohin werden Savegames gespeichert? Woraus entsteht Application.persistentDataPath?Scriptable ObjectsSerialisierungsformen in Unity. Wie wird ein Scriptable Object erzeugt und benutzt?SzenenmanagementWie wird zu einer anderen Szene gewechselt?Wie bleiben Daten über Szenenwechsel hinweg erhalten?Laden und Mischen mehrerer Szenen. DontDestroyOnLoad.Interaktives Quiz zu diesem KapitelSchreibe Dich jetzt ein, um sofort Zugriff auf all diese Inhalte zu bekommen!

Skills

Reviews